@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css');@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200');@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Display&display=swap');


/* Pretendard 폰트 로드 (CDN) */
/* Material Symbols Rounded 폰트 로드 */
/* 디자인 시스템 토큰 (간격/라운드/폰트크기/그림자/의미색 등) */
/**
 * 디자인 시스템 토큰
 *
 * 변경 시 docs/design-system/tokens.md 도 함께 수정.
 * 색상 raw hex/rgb 사용 금지 (이 파일과 style.css 제외) — npm run lint:tokens 로 검사.
 *
 * 기존 style.css 의 토큰(--primary-color, --text-*, --surface-*, --border-color 등)은
 * 그대로 유지하고, 이 파일은 빠져 있던 토큰만 추가한다.
 */
:root {
  /* === Spacing (4px 베이스, rem 단위) === */
  --space-0: 0;
  --space-1: 0.25rem;   /*  4px */
  --space-2: 0.5rem;    /*  8px — 가장 흔함 */
  --space-3: 0.75rem;   /* 12px */
  --space-4: 1rem;      /* 16px */
  --space-5: 1.25rem;   /* 20px */
  --space-6: 1.5rem;    /* 24px */
  --space-8: 2rem;      /* 32px */
  --space-10: 2.5rem;   /* 40px */
  --space-12: 3rem;     /* 48px */

  /* === 페이지/탭 콘텐츠 여백 (상단·좌·우 공통) ===
     설정 탭 등 콘텐츠의 상단·좌·우 여백을 이 토큰 하나로 통일.
     데스크탑 1rem, 좁은 화면(≤768px) 0.5rem 으로 축소. */
  --page-pad-x: 1rem;

  /* === Border radius === */
  --radius-sm: 4px;
  --radius-md: 6px;     /* 기본 — 입력/버튼/카드 */
  --radius-lg: 12px;    /* 모달/큰 카드 */
  --radius-xl: 16px;
  --radius-full: 999px; /* pill / 원형 */

  /* === Font sizes (12px 기본) === */
  --font-xs: 0.75rem;     /* 12px — 본문 기본 */
  --font-sm: 0.8125rem;   /* 13px */
  --font-md: 0.875rem;    /* 14px */
  --font-base: 1rem;      /* 16px */
  --font-lg: 1.125rem;    /* 18px */
  --font-xl: 1.25rem;     /* 20px */
  --font-2xl: 1.5rem;     /* 24px */

  /* === Font weights === */
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* === Line heights === */
  --line-tight: 1.25;
  --line-normal: 1.5;
  --line-relaxed: 1.7;

  /* === 의미 색상 (테마 무관 — 상태 표현) === */
  --color-danger: #ef4444;
  --color-danger-hover: #dc2626;
  --color-warning: #f59e0b;
  --color-warning-hover: #d97706;
  --color-info: #3b82f6;
  --color-info-hover: #2563eb;
  --color-success: #22c55e;
  --color-success-hover: #16a34a;
  /* --primary-color, --primary-hover, --success-color 는 style.css 에 정의됨 */

  /* === 분류 강조색 (status 외 카테고리 구분 — 뱃지·라벨·차트) === */
  --color-purple: #a855f7;
  --color-indigo: #6366f1;
  --color-orange: #f97316;
  --color-cyan: #06b6d4;
  --color-pink: #ec4899;
  --color-lime: #84cc16;

  /* === 고정 브랜드색 (외부 규정 — 리테마 대상 아님) === */
  --brand-kakao: #fee500;

  /* === 장식색 (일러스트 — 책 메타포) === */
  --deco-book-page: #f5efdc;
  --deco-book-page-line: #d8cfb2;

  /* === 상태 표면 (테마 의존 — 다크 기본) === */
  --surface-hover: rgba(255, 255, 255, 0.04);
  --surface-active: rgba(255, 255, 255, 0.08);
  /* 목록 테이블 교대 행(zebra) 배경 — 검은 배경 위에서 또렷이 보이는 수준 */
  --surface-stripe: rgba(255, 255, 255, 0.05);

  /* === 의미색 연한 배경 (뱃지·알림 박스 틴트·선택 칩) === */
  --surface-primary-soft: rgba(16, 185, 129, 0.12);
  --surface-warning-soft: rgba(245, 158, 11, 0.15);
  --surface-danger-soft: rgba(239, 68, 68, 0.10);
  --surface-info-soft: rgba(59, 130, 246, 0.12);
  --surface-success-soft: rgba(34, 197, 94, 0.12);
  --surface-purple-soft: rgba(168, 85, 247, 0.12);
  --surface-indigo-soft: rgba(99, 102, 241, 0.12);
  --surface-orange-soft: rgba(249, 115, 22, 0.12);
  --surface-cyan-soft: rgba(6, 182, 212, 0.12);
  --surface-pink-soft: rgba(236, 72, 153, 0.12);
  --surface-lime-soft: rgba(132, 204, 22, 0.12);

  /* === 중립 경계선 (slate 반투명 — 테마 무관, 미세 구분선) === */
  --border-subtle: rgba(148, 163, 184, 0.15);

  /* === 스크롤바 (테마 의존 — 다크 기본) === */
  --scrollbar-thumb: #4a5568;
  --scrollbar-thumb-hover: #718096;
  --scrollbar-track: rgba(255, 255, 255, 0.05);

  /* === 고정색 — 컬러/accent 배경 위 텍스트·아이콘 (테마 무관) === */
  --color-white: #ffffff;
  --color-black: #000000;

  /* === RGB 트리플 — 투명도 변종용 (rgba(var(--xxx-rgb), α)) ===
     의미색의 반투명 테두리·오버레이·glow 를 토큰 기반으로 표현. 색상값은
     위 hex 토큰과 동기 유지할 것. */
  --primary-rgb: 16, 185, 129;
  --color-success-rgb: 34, 197, 94;
  --color-indigo-rgb: 99, 102, 241;
  --color-white-rgb: 255, 255, 255;

  /* === 포커스 링 === */
  --ring-focus: 0 0 0 3px rgba(16, 185, 129, 0.18);
  --ring-danger: 0 0 0 3px rgba(239, 68, 68, 0.18);

  /* === Shadows === */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.18);
  --shadow-lg: 0 8px 20px rgba(0, 0, 0, 0.25);
  --shadow-modal: 0 18px 45px rgba(15, 23, 42, 0.45);

  /* === Z-index 단계 === */
  --z-dropdown: 1000;
  --z-sticky: 1020;
  /* 좌/우 분할 분리대(드래그 핸들 + < = > 토글 버튼).
     - sticky 헤더(1020) 의 negative margin 이 분리대를 덮지 않도록 그보다 위
     - 단 앱 크롬(--z-fixed=1030)보다는 아래 — 안 그러면 탑바 드롭다운이 분리대 뒤로 깔림 */
  --z-splitter: 1021;
  --z-fixed: 1030;
  /* 분할 드래그 중 iframe/PDF 가 마우스 이벤트 가로채지 못하게 깔리는 overlay.
     반드시 --z-splitter 보다 낮아야 한다 — 그렇지 않으면 mousedown 직후 Vue 리렌더로
     overlay 가 < = > 버튼 위를 덮어, mouseup 이 overlay 에서 발생 → click 이 공통 조상에서
     fire 되어 버튼 @click 이 호출되지 않는 회귀가 발생한다 (#2026-05-21 발견). */
  --z-resize-overlay: 5;
  --z-modal-backdrop: 9000;
  --z-modal: 10000;
  --z-popover: 11000;
  --z-toast: 12000;
  --z-tooltip: 13000;

  /* === 전환 === */
  --transition-fast: 0.12s ease;
  --transition-base: 0.2s ease;
  --transition-slow: 0.3s ease;

  /* === 백드롭 === */
  --backdrop-bg: rgba(15, 23, 42, 0.55);
  --backdrop-blur: blur(4px);

  /* === 컴포넌트 크기 (버튼/입력 통일) === */
  --control-height-xs: 22px;
  --control-height-sm: 26px;
  --control-height-md: 32px;
  --control-height-lg: 40px;
  --control-padding-x-xs: var(--space-1);
  --control-padding-x-sm: var(--space-2);
  --control-padding-x-md: var(--space-3);
  --control-padding-x-lg: var(--space-4);

  /* 앱 셸 상단 바 높이 — 탑바(Topbar)와 사이드바 헤더(Sidebar header)가
     공유해 두 영역의 아래 구분선이 같은 높이에서 만나도록 한다. */
  --app-header-height: 57px;

  /* === 목록 화면 (list-screen) === */
  /* 테이블 행은 고정 높이. (카드는 내용에 따른 가변 높이 — 측정형 가상 스크롤) */
  --list-row-h: 44px;
}
/* 페이지 여백 — 좁은 화면에서 축소 */
@media (max-width: 768px) {
  :root {
    --page-pad-x: 0.5rem;
  }
}
/* 라이트 테마 오버라이드 */
html[data-theme='light'],
body[data-theme='light'] {
  --surface-hover: rgba(15, 23, 42, 0.04);
  --surface-active: rgba(15, 23, 42, 0.08);
  --surface-stripe: rgba(15, 23, 42, 0.04);

  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.10);
  --shadow-lg: 0 8px 20px rgba(15, 23, 42, 0.15);
  --shadow-modal: 0 18px 45px rgba(15, 23, 42, 0.18);

  --backdrop-bg: rgba(15, 23, 42, 0.35);

  --scrollbar-thumb: #cbd5e1;
  --scrollbar-thumb-hover: #94a3b8;
  --scrollbar-track: rgba(15, 23, 42, 0.04);
}
:root {
  font-family: 'Pretendard Variable', -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', '맑은 고딕', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
  line-height: 1.5;
  font-weight: 400;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #f3f4f6;
  background-color: #000000;
  --background-color: #000000;
  --surface-color: #000000;
  --surface-color-secondary: #000000;
  --surface-muted: #1a1a1a;
  --border-color: #2a2a2a;
  --primary-color: #10b981;
  --primary-hover: #34d399;
  --success-color: #10b981;
  --text-primary: #f9fafb;
  --text-secondary: #9ca3af;
  --text-tertiary: #64748b;
  --accent-color: #2dd4bf;
  /* 회사 카드 상태용 색상 (기존 HTML 버전과 맞춤) */
  --company-card-success-bg: rgba(0, 170, 119, 0.03);
  --company-card-success-border: rgba(0, 170, 119, 0.14);
  --company-card-failed-bg: rgba(244, 67, 54, 0.03);
  --company-card-failed-border: rgba(244, 67, 54, 0.14);
}
html[data-theme='dark'],
body[data-theme='dark'] {
  --background-color: #000000;
  --surface-color: #000000;
  --surface-color-secondary: #000000;
  --surface-muted: #1a1a1a;
  --card-bg: #181a1d;
  --card-shadow: 0 1px 0 rgba(255, 255, 255, 0.03) inset, 0 2px 6px rgba(0, 0, 0, 0.4);
  --card-shadow-hover: 0 1px 0 rgba(255, 255, 255, 0.04) inset, 0 10px 28px rgba(0, 0, 0, 0.6);
  /* 카탈로그 카드 썸네일 영역 — 다크: 짙은 검정 위 형광 그린 글로우(미래적), 라이트는 별도 정의 */
  --thumb-bg: radial-gradient(circle at 25% 30%, rgba(16, 185, 129, 0.16) 0%, transparent 55%), #000000;
  --border-color: #2a2a2a;
  --text-primary: #f9fafb;
  --text-secondary: #9ca3af;
  --text-tertiary: #64748b;
  /* 다크 테마용 회사 카드 상태 색상 */
  --company-card-success-bg: rgba(74, 222, 128, 0.08);
  --company-card-success-border: rgba(74, 222, 128, 0.22);
  --company-card-failed-bg: rgba(248, 113, 113, 0.08);
  --company-card-failed-border: rgba(248, 113, 113, 0.22);
  --chat-bubble-bg: #1f2937;
  /* 다크모드 채팅 말풍선 배경 (어두운 회색) */
}
html[data-theme='light'],
body[data-theme='light'] {
  --background-color: #f8fafc;
  --surface-color: #ffffff;
  --surface-color-secondary: #f1f5f9;
  --surface-muted: #eff3fb;
  --card-bg: #ffffff;
  --card-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 4px 12px rgba(15, 23, 42, 0.06);
  --card-shadow-hover: 0 2px 4px rgba(15, 23, 42, 0.06), 0 12px 28px rgba(15, 23, 42, 0.12);
  /* 라이트 썸네일 — 부드러운 슬레이트 톤 종이 + 코너에 옅은 그린/블루 highlight (살짝만)
     쨍한 그린 글로우는 라이트에서 화상품처럼 보여서 밋밋한 종이 톤으로 정돈 */
  --thumb-bg:
    radial-gradient(circle at 22% 18%, rgba(16, 185, 129, 0.07) 0%, transparent 45%),
    radial-gradient(circle at 80% 100%, rgba(99, 102, 241, 0.05) 0%, transparent 55%),
    linear-gradient(160deg, #fcfdfe 0%, #eef2f7 100%);
  --border-color: #e2e8f0;
  --text-primary: #0f172a;
  --text-secondary: #334155;
  --text-tertiary: #64748b;
  --chat-bubble-bg: #f1f5f9;
  /* 라이트모드 채팅 말풍선 배경 (기존 surface-secondary) */
}
.material-symbols-rounded {
  font-family: 'Material Symbols Rounded';
  font-weight: normal;
  font-style: normal;
  font-size: 1.25rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  font-feature-settings: 'liga';
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  /* 폰트 로드 전 텍스트가 레이아웃을 밀지 않도록 크기 고정 */
  width: 1.25em;
  height: 1.25em;
  overflow: hidden;
}
html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
  overflow-x: hidden;
  background: var(--background-color);
  color: var(--text-primary);
  font-family: 'Pretendard Variable', -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', '맑은 고딕', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
}
/* 모든 요소가 전역 폰트를 상속받도록 */
*,
*::before,
*::after {
  font-family: inherit;
}
#app {
  min-height: 100vh;
  /* iOS Safari 주소 표시줄 문제 해결: CSS 변수 사용 */
  min-height: var(--vh, 100vh);
  min-height: 100dvh;
}
a {
  color: inherit;
  text-decoration: none;
}
button {
  font: inherit;
}
*,
*::before,
*::after {
  box-sizing: border-box;
  font-family: inherit;
}
/* 언어 선택기 드롭다운 스타일 - Select 컨트롤과 동일하게 */
.p-select-overlay.p-component,
.p-select-overlay {
  padding: 0.125rem !important;
}
.p-select-overlay .p-select-list,
.p-select-overlay ul,
.p-select-overlay [role="listbox"] {
  padding: 0 !important;
}
.p-select-overlay .p-select-item,
.p-select-overlay .p-select-item.p-component,
.p-select-overlay [role="option"],
.p-select-overlay li {
  padding: 0 0.5rem !important;
  min-height: 28px !important;
  height: 28px !important;
  max-height: 28px !important;
  font-size: 0.8125rem !important;
  line-height: 28px !important;
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
}
.p-select-overlay .p-select-item-label,
.p-select-overlay .p-select-item .p-select-item-label,
.p-select-overlay [role="option"]>* {
  padding: 0 !important;
  line-height: 28px !important;
  height: 28px !important;
  font-size: 0.8125rem !important;
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
}
/* 전역 스크롤바 스타일 */
/* Firefox용 */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--border-color) transparent;
}
/* Webkit 브라우저용 (Chrome, Safari, Edge) */
*::-webkit-scrollbar {
  width: 6px;
  height: 6px;
  -webkit-appearance: none;
  display: block;
}
*::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 999px;
}
*::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 999px;
  border: 1px solid transparent;
}
*::-webkit-scrollbar-thumb:hover {
  background: var(--text-secondary);
}
*::-webkit-scrollbar-thumb:active {
  background: var(--text-secondary);
}
/* 라이트 테마에서 스크롤바 더 어둡게 (명확하게 보이도록) */
html[data-theme='light'] *::-webkit-scrollbar-thumb,
body[data-theme='light'] *::-webkit-scrollbar-thumb {
  background: #94a3b8;
}
html[data-theme='light'] *::-webkit-scrollbar-thumb:hover,
body[data-theme='light'] *::-webkit-scrollbar-thumb:hover {
  background: #64748b;
}
html[data-theme='light'] *::-webkit-scrollbar-thumb:active,
body[data-theme='light'] *::-webkit-scrollbar-thumb:active {
  background: #475569;
}
html[data-theme='light'] * {
  scrollbar-color: #94a3b8 transparent;
}
/* 다크 테마에서 스크롤바 더 밝게 */
html[data-theme='dark'] *::-webkit-scrollbar-thumb,
body[data-theme='dark'] *::-webkit-scrollbar-thumb {
  background: #4a5568;
}
html[data-theme='dark'] *::-webkit-scrollbar-thumb:hover,
body[data-theme='dark'] *::-webkit-scrollbar-thumb:hover {
  background: #718096;
}
html[data-theme='dark'] * {
  scrollbar-color: #4a5568 transparent;
}
/* 전역 입력 필드 기본 스타일 (hover/focus 효과 통일) */
input[type="text"],
input[type="number"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="url"],
textarea {
  outline: none;
  transition: border-color 0.2s ease;
}
input[type="text"]:hover,
input[type="number"]:hover,
input[type="email"]:hover,
input[type="password"]:hover,
input[type="search"]:hover,
input[type="tel"]:hover,
input[type="url"]:hover,
textarea:hover {
  /* border가 있는 경우에만 효과가 보임 */
  border-color: var(--primary-color);
}
input[type="text"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
textarea:focus {
  outline: none;
  box-shadow: none;
  border-color: var(--primary-color);
}
/* wrapper 내부의 border: none인 input은 전역 스타일 적용해도 시각적 변화 없음 */
/* 예: .list-view__autocomplete-input, .login__input 등은 border: none이므로 영향 없음 */
/* 모바일(iOS Safari) 입력 시 화면 자동 확대 방지 */
/* iOS Safari는 font-size 16px 미만인 input에 focus 시 화면을 자동 확대함 */
@media screen and (max-width: 768px) {
  input,
  input[type="text"],
  input[type="number"],
  input[type="email"],
  input[type="password"],
  input[type="search"],
  input[type="tel"],
  input[type="url"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  textarea,
  select {
    font-size: max(16px, 1em) !important;
  }
}
/*!
 * Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2025 Fonticons, Inc.
 */
.fa,.fa-brands,.fa-classic,.fa-regular,.fa-solid,.fab,.far,.fas{--_fa-family:var(--fa-family,var(--fa-style-family,"Font Awesome 7 Free"));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:var(--fa-display,inline-block);font-family:var(--_fa-family);font-feature-settings:normal;font-style:normal;font-synthesis:none;font-variant:normal;font-weight:var(--fa-style,900);line-height:1;text-align:center;text-rendering:auto;width:var(--fa-width,1.25em)}:is(.fas,.far,.fab,.fa-solid,.fa-regular,.fa-brands,.fa-classic,.fa):before{content:var(--fa)/""}@supports not (content:""/""){:is(.fas,.far,.fab,.fa-solid,.fa-regular,.fa-brands,.fa-classic,.fa):before{content:var(--fa)}}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-width-auto{--fa-width:auto}.fa-fw,.fa-width-fixed{--fa-width:1.25em}.fa-ul{list-style-type:none;margin-inline-start:var(--fa-li-margin,2.5em);padding-inline-start:0}.fa-ul>li{position:relative}.fa-li{inset-inline-start:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.0625em) var(--fa-border-style,solid) var(--fa-border-color,#eee);box-sizing:var(--fa-border-box-sizing,content-box);padding:var(--fa-border-padding,.1875em .25em)}.fa-pull-left,.fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin,.3em)}.fa-pull-end,.fa-pull-right{float:inline-end;margin-inline-start:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation:none!important;transition:none!important}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{--fa-width:100%;inset:0;position:absolute;text-align:center;width:var(--fa-width);z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}

.fa-0{--fa:"\30 "}.fa-1{--fa:"\31 "}.fa-2{--fa:"\32 "}.fa-3{--fa:"\33 "}.fa-4{--fa:"\34 "}.fa-5{--fa:"\35 "}.fa-6{--fa:"\36 "}.fa-7{--fa:"\37 "}.fa-8{--fa:"\38 "}.fa-9{--fa:"\39 "}.fa-exclamation{--fa:"\!"}.fa-hashtag{--fa:"\#"}.fa-dollar,.fa-dollar-sign,.fa-usd{--fa:"\$"}.fa-percent,.fa-percentage{--fa:"\%"}.fa-asterisk{--fa:"\*"}.fa-add,.fa-plus{--fa:"\+"}.fa-less-than{--fa:"\<"}.fa-equals{--fa:"\="}.fa-greater-than{--fa:"\>"}.fa-question{--fa:"\?"}.fa-at{--fa:"\@"}.fa-a{--fa:"A"}.fa-b{--fa:"B"}.fa-c{--fa:"C"}.fa-d{--fa:"D"}.fa-e{--fa:"E"}.fa-f{--fa:"F"}.fa-g{--fa:"G"}.fa-h{--fa:"H"}.fa-i{--fa:"I"}.fa-j{--fa:"J"}.fa-k{--fa:"K"}.fa-l{--fa:"L"}.fa-m{--fa:"M"}.fa-n{--fa:"N"}.fa-o{--fa:"O"}.fa-p{--fa:"P"}.fa-q{--fa:"Q"}.fa-r{--fa:"R"}.fa-s{--fa:"S"}.fa-t{--fa:"T"}.fa-u{--fa:"U"}.fa-v{--fa:"V"}.fa-w{--fa:"W"}.fa-x{--fa:"X"}.fa-y{--fa:"Y"}.fa-z{--fa:"Z"}.fa-faucet{--fa:"\e005"}.fa-faucet-drip{--fa:"\e006"}.fa-house-chimney-window{--fa:"\e00d"}.fa-house-signal{--fa:"\e012"}.fa-temperature-arrow-down,.fa-temperature-down{--fa:"\e03f"}.fa-temperature-arrow-up,.fa-temperature-up{--fa:"\e040"}.fa-trailer{--fa:"\e041"}.fa-bacteria{--fa:"\e059"}.fa-bacterium{--fa:"\e05a"}.fa-box-tissue{--fa:"\e05b"}.fa-hand-holding-medical{--fa:"\e05c"}.fa-hand-sparkles{--fa:"\e05d"}.fa-hands-bubbles,.fa-hands-wash{--fa:"\e05e"}.fa-handshake-alt-slash,.fa-handshake-simple-slash,.fa-handshake-slash{--fa:"\e060"}.fa-head-side-cough{--fa:"\e061"}.fa-head-side-cough-slash{--fa:"\e062"}.fa-head-side-mask{--fa:"\e063"}.fa-head-side-virus{--fa:"\e064"}.fa-house-chimney-user{--fa:"\e065"}.fa-house-laptop,.fa-laptop-house{--fa:"\e066"}.fa-lungs-virus{--fa:"\e067"}.fa-people-arrows,.fa-people-arrows-left-right{--fa:"\e068"}.fa-plane-slash{--fa:"\e069"}.fa-pump-medical{--fa:"\e06a"}.fa-pump-soap{--fa:"\e06b"}.fa-shield-virus{--fa:"\e06c"}.fa-sink{--fa:"\e06d"}.fa-soap{--fa:"\e06e"}.fa-stopwatch-20{--fa:"\e06f"}.fa-shop-slash,.fa-store-alt-slash{--fa:"\e070"}.fa-store-slash{--fa:"\e071"}.fa-toilet-paper-slash{--fa:"\e072"}.fa-users-slash{--fa:"\e073"}.fa-virus{--fa:"\e074"}.fa-virus-slash{--fa:"\e075"}.fa-viruses{--fa:"\e076"}.fa-vest{--fa:"\e085"}.fa-vest-patches{--fa:"\e086"}.fa-arrow-trend-down{--fa:"\e097"}.fa-arrow-trend-up{--fa:"\e098"}.fa-arrow-up-from-bracket{--fa:"\e09a"}.fa-austral-sign{--fa:"\e0a9"}.fa-baht-sign{--fa:"\e0ac"}.fa-bitcoin-sign{--fa:"\e0b4"}.fa-bolt-lightning{--fa:"\e0b7"}.fa-book-bookmark{--fa:"\e0bb"}.fa-camera-rotate{--fa:"\e0d8"}.fa-cedi-sign{--fa:"\e0df"}.fa-chart-column{--fa:"\e0e3"}.fa-chart-gantt{--fa:"\e0e4"}.fa-clapperboard{--fa:"\e131"}.fa-clover{--fa:"\e139"}.fa-code-compare{--fa:"\e13a"}.fa-code-fork{--fa:"\e13b"}.fa-code-pull-request{--fa:"\e13c"}.fa-colon-sign{--fa:"\e140"}.fa-cruzeiro-sign{--fa:"\e152"}.fa-display{--fa:"\e163"}.fa-dong-sign{--fa:"\e169"}.fa-elevator{--fa:"\e16d"}.fa-filter-circle-xmark{--fa:"\e17b"}.fa-florin-sign{--fa:"\e184"}.fa-folder-closed{--fa:"\e185"}.fa-franc-sign{--fa:"\e18f"}.fa-guarani-sign{--fa:"\e19a"}.fa-gun{--fa:"\e19b"}.fa-hands-clapping{--fa:"\e1a8"}.fa-home-user,.fa-house-user{--fa:"\e1b0"}.fa-indian-rupee,.fa-indian-rupee-sign,.fa-inr{--fa:"\e1bc"}.fa-kip-sign{--fa:"\e1c4"}.fa-lari-sign{--fa:"\e1c8"}.fa-litecoin-sign{--fa:"\e1d3"}.fa-manat-sign{--fa:"\e1d5"}.fa-mask-face{--fa:"\e1d7"}.fa-mill-sign{--fa:"\e1ed"}.fa-money-bills{--fa:"\e1f3"}.fa-naira-sign{--fa:"\e1f6"}.fa-notdef{--fa:"\e1fe"}.fa-panorama{--fa:"\e209"}.fa-peseta-sign{--fa:"\e221"}.fa-peso-sign{--fa:"\e222"}.fa-plane-up{--fa:"\e22d"}.fa-rupiah-sign{--fa:"\e23d"}.fa-stairs{--fa:"\e289"}.fa-timeline{--fa:"\e29c"}.fa-truck-front{--fa:"\e2b7"}.fa-try,.fa-turkish-lira,.fa-turkish-lira-sign{--fa:"\e2bb"}.fa-vault{--fa:"\e2c5"}.fa-magic-wand-sparkles,.fa-wand-magic-sparkles{--fa:"\e2ca"}.fa-wheat-alt,.fa-wheat-awn{--fa:"\e2cd"}.fa-wheelchair-alt,.fa-wheelchair-move{--fa:"\e2ce"}.fa-bangladeshi-taka-sign{--fa:"\e2e6"}.fa-bowl-rice{--fa:"\e2eb"}.fa-person-pregnant{--fa:"\e31e"}.fa-home-lg,.fa-house-chimney{--fa:"\e3af"}.fa-house-crack{--fa:"\e3b1"}.fa-house-medical{--fa:"\e3b2"}.fa-cent-sign{--fa:"\e3f5"}.fa-plus-minus{--fa:"\e43c"}.fa-sailboat{--fa:"\e445"}.fa-section{--fa:"\e447"}.fa-shrimp{--fa:"\e448"}.fa-brazilian-real-sign{--fa:"\e46c"}.fa-chart-simple{--fa:"\e473"}.fa-diagram-next{--fa:"\e476"}.fa-diagram-predecessor{--fa:"\e477"}.fa-diagram-successor{--fa:"\e47a"}.fa-earth-oceania,.fa-globe-oceania{--fa:"\e47b"}.fa-bug-slash{--fa:"\e490"}.fa-file-circle-plus{--fa:"\e494"}.fa-shop-lock{--fa:"\e4a5"}.fa-virus-covid{--fa:"\e4a8"}.fa-virus-covid-slash{--fa:"\e4a9"}.fa-anchor-circle-check{--fa:"\e4aa"}.fa-anchor-circle-exclamation{--fa:"\e4ab"}.fa-anchor-circle-xmark{--fa:"\e4ac"}.fa-anchor-lock{--fa:"\e4ad"}.fa-arrow-down-up-across-line{--fa:"\e4af"}.fa-arrow-down-up-lock{--fa:"\e4b0"}.fa-arrow-right-to-city{--fa:"\e4b3"}.fa-arrow-up-from-ground-water{--fa:"\e4b5"}.fa-arrow-up-from-water-pump{--fa:"\e4b6"}.fa-arrow-up-right-dots{--fa:"\e4b7"}.fa-arrows-down-to-line{--fa:"\e4b8"}.fa-arrows-down-to-people{--fa:"\e4b9"}.fa-arrows-left-right-to-line{--fa:"\e4ba"}.fa-arrows-spin{--fa:"\e4bb"}.fa-arrows-split-up-and-left{--fa:"\e4bc"}.fa-arrows-to-circle{--fa:"\e4bd"}.fa-arrows-to-dot{--fa:"\e4be"}.fa-arrows-to-eye{--fa:"\e4bf"}.fa-arrows-turn-right{--fa:"\e4c0"}.fa-arrows-turn-to-dots{--fa:"\e4c1"}.fa-arrows-up-to-line{--fa:"\e4c2"}.fa-bore-hole{--fa:"\e4c3"}.fa-bottle-droplet{--fa:"\e4c4"}.fa-bottle-water{--fa:"\e4c5"}.fa-bowl-food{--fa:"\e4c6"}.fa-boxes-packing{--fa:"\e4c7"}.fa-bridge{--fa:"\e4c8"}.fa-bridge-circle-check{--fa:"\e4c9"}.fa-bridge-circle-exclamation{--fa:"\e4ca"}.fa-bridge-circle-xmark{--fa:"\e4cb"}.fa-bridge-lock{--fa:"\e4cc"}.fa-bridge-water{--fa:"\e4ce"}.fa-bucket{--fa:"\e4cf"}.fa-bugs{--fa:"\e4d0"}.fa-building-circle-arrow-right{--fa:"\e4d1"}.fa-building-circle-check{--fa:"\e4d2"}.fa-building-circle-exclamation{--fa:"\e4d3"}.fa-building-circle-xmark{--fa:"\e4d4"}.fa-building-flag{--fa:"\e4d5"}.fa-building-lock{--fa:"\e4d6"}.fa-building-ngo{--fa:"\e4d7"}.fa-building-shield{--fa:"\e4d8"}.fa-building-un{--fa:"\e4d9"}.fa-building-user{--fa:"\e4da"}.fa-building-wheat{--fa:"\e4db"}.fa-burst{--fa:"\e4dc"}.fa-car-on{--fa:"\e4dd"}.fa-car-tunnel{--fa:"\e4de"}.fa-child-combatant,.fa-child-rifle{--fa:"\e4e0"}.fa-children{--fa:"\e4e1"}.fa-circle-nodes{--fa:"\e4e2"}.fa-clipboard-question{--fa:"\e4e3"}.fa-cloud-showers-water{--fa:"\e4e4"}.fa-computer{--fa:"\e4e5"}.fa-cubes-stacked{--fa:"\e4e6"}.fa-envelope-circle-check{--fa:"\e4e8"}.fa-explosion{--fa:"\e4e9"}.fa-ferry{--fa:"\e4ea"}.fa-file-circle-exclamation{--fa:"\e4eb"}.fa-file-circle-minus{--fa:"\e4ed"}.fa-file-circle-question{--fa:"\e4ef"}.fa-file-shield{--fa:"\e4f0"}.fa-fire-burner{--fa:"\e4f1"}.fa-fish-fins{--fa:"\e4f2"}.fa-flask-vial{--fa:"\e4f3"}.fa-glass-water{--fa:"\e4f4"}.fa-glass-water-droplet{--fa:"\e4f5"}.fa-group-arrows-rotate{--fa:"\e4f6"}.fa-hand-holding-hand{--fa:"\e4f7"}.fa-handcuffs{--fa:"\e4f8"}.fa-hands-bound{--fa:"\e4f9"}.fa-hands-holding-child{--fa:"\e4fa"}.fa-hands-holding-circle{--fa:"\e4fb"}.fa-heart-circle-bolt{--fa:"\e4fc"}.fa-heart-circle-check{--fa:"\e4fd"}.fa-heart-circle-exclamation{--fa:"\e4fe"}.fa-heart-circle-minus{--fa:"\e4ff"}.fa-heart-circle-plus{--fa:"\e500"}.fa-heart-circle-xmark{--fa:"\e501"}.fa-helicopter-symbol{--fa:"\e502"}.fa-helmet-un{--fa:"\e503"}.fa-hill-avalanche{--fa:"\e507"}.fa-hill-rockslide{--fa:"\e508"}.fa-house-circle-check{--fa:"\e509"}.fa-house-circle-exclamation{--fa:"\e50a"}.fa-house-circle-xmark{--fa:"\e50b"}.fa-house-fire{--fa:"\e50c"}.fa-house-flag{--fa:"\e50d"}.fa-house-flood-water{--fa:"\e50e"}.fa-house-flood-water-circle-arrow-right{--fa:"\e50f"}.fa-house-lock{--fa:"\e510"}.fa-house-medical-circle-check{--fa:"\e511"}.fa-house-medical-circle-exclamation{--fa:"\e512"}.fa-house-medical-circle-xmark{--fa:"\e513"}.fa-house-medical-flag{--fa:"\e514"}.fa-house-tsunami{--fa:"\e515"}.fa-jar{--fa:"\e516"}.fa-jar-wheat{--fa:"\e517"}.fa-jet-fighter-up{--fa:"\e518"}.fa-jug-detergent{--fa:"\e519"}.fa-kitchen-set{--fa:"\e51a"}.fa-land-mine-on{--fa:"\e51b"}.fa-landmark-flag{--fa:"\e51c"}.fa-laptop-file{--fa:"\e51d"}.fa-lines-leaning{--fa:"\e51e"}.fa-location-pin-lock{--fa:"\e51f"}.fa-locust{--fa:"\e520"}.fa-magnifying-glass-arrow-right{--fa:"\e521"}.fa-magnifying-glass-chart{--fa:"\e522"}.fa-mars-and-venus-burst{--fa:"\e523"}.fa-mask-ventilator{--fa:"\e524"}.fa-mattress-pillow{--fa:"\e525"}.fa-mobile-retro{--fa:"\e527"}.fa-money-bill-transfer{--fa:"\e528"}.fa-money-bill-trend-up{--fa:"\e529"}.fa-money-bill-wheat{--fa:"\e52a"}.fa-mosquito{--fa:"\e52b"}.fa-mosquito-net{--fa:"\e52c"}.fa-mound{--fa:"\e52d"}.fa-mountain-city{--fa:"\e52e"}.fa-mountain-sun{--fa:"\e52f"}.fa-oil-well{--fa:"\e532"}.fa-people-group{--fa:"\e533"}.fa-people-line{--fa:"\e534"}.fa-people-pulling{--fa:"\e535"}.fa-people-robbery{--fa:"\e536"}.fa-people-roof{--fa:"\e537"}.fa-person-arrow-down-to-line{--fa:"\e538"}.fa-person-arrow-up-from-line{--fa:"\e539"}.fa-person-breastfeeding{--fa:"\e53a"}.fa-person-burst{--fa:"\e53b"}.fa-person-cane{--fa:"\e53c"}.fa-person-chalkboard{--fa:"\e53d"}.fa-person-circle-check{--fa:"\e53e"}.fa-person-circle-exclamation{--fa:"\e53f"}.fa-person-circle-minus{--fa:"\e540"}.fa-person-circle-plus{--fa:"\e541"}.fa-person-circle-question{--fa:"\e542"}.fa-person-circle-xmark{--fa:"\e543"}.fa-person-dress-burst{--fa:"\e544"}.fa-person-drowning{--fa:"\e545"}.fa-person-falling{--fa:"\e546"}.fa-person-falling-burst{--fa:"\e547"}.fa-person-half-dress{--fa:"\e548"}.fa-person-harassing{--fa:"\e549"}.fa-person-military-pointing{--fa:"\e54a"}.fa-person-military-rifle{--fa:"\e54b"}.fa-person-military-to-person{--fa:"\e54c"}.fa-person-rays{--fa:"\e54d"}.fa-person-rifle{--fa:"\e54e"}.fa-person-shelter{--fa:"\e54f"}.fa-person-walking-arrow-loop-left{--fa:"\e551"}.fa-person-walking-arrow-right{--fa:"\e552"}.fa-person-walking-dashed-line-arrow-right{--fa:"\e553"}.fa-person-walking-luggage{--fa:"\e554"}.fa-plane-circle-check{--fa:"\e555"}.fa-plane-circle-exclamation{--fa:"\e556"}.fa-plane-circle-xmark{--fa:"\e557"}.fa-plane-lock{--fa:"\e558"}.fa-plate-wheat{--fa:"\e55a"}.fa-plug-circle-bolt{--fa:"\e55b"}.fa-plug-circle-check{--fa:"\e55c"}.fa-plug-circle-exclamation{--fa:"\e55d"}.fa-plug-circle-minus{--fa:"\e55e"}.fa-plug-circle-plus{--fa:"\e55f"}.fa-plug-circle-xmark{--fa:"\e560"}.fa-ranking-star{--fa:"\e561"}.fa-road-barrier{--fa:"\e562"}.fa-road-bridge{--fa:"\e563"}.fa-road-circle-check{--fa:"\e564"}.fa-road-circle-exclamation{--fa:"\e565"}.fa-road-circle-xmark{--fa:"\e566"}.fa-road-lock{--fa:"\e567"}.fa-road-spikes{--fa:"\e568"}.fa-rug{--fa:"\e569"}.fa-sack-xmark{--fa:"\e56a"}.fa-school-circle-check{--fa:"\e56b"}.fa-school-circle-exclamation{--fa:"\e56c"}.fa-school-circle-xmark{--fa:"\e56d"}.fa-school-flag{--fa:"\e56e"}.fa-school-lock{--fa:"\e56f"}.fa-sheet-plastic{--fa:"\e571"}.fa-shield-cat{--fa:"\e572"}.fa-shield-dog{--fa:"\e573"}.fa-shield-heart{--fa:"\e574"}.fa-square-nfi{--fa:"\e576"}.fa-square-person-confined{--fa:"\e577"}.fa-square-virus{--fa:"\e578"}.fa-rod-asclepius,.fa-rod-snake,.fa-staff-aesculapius,.fa-staff-snake{--fa:"\e579"}.fa-sun-plant-wilt{--fa:"\e57a"}.fa-tarp{--fa:"\e57b"}.fa-tarp-droplet{--fa:"\e57c"}.fa-tent{--fa:"\e57d"}.fa-tent-arrow-down-to-line{--fa:"\e57e"}.fa-tent-arrow-left-right{--fa:"\e57f"}.fa-tent-arrow-turn-left{--fa:"\e580"}.fa-tent-arrows-down{--fa:"\e581"}.fa-tents{--fa:"\e582"}.fa-toilet-portable{--fa:"\e583"}.fa-toilets-portable{--fa:"\e584"}.fa-tower-cell{--fa:"\e585"}.fa-tower-observation{--fa:"\e586"}.fa-tree-city{--fa:"\e587"}.fa-trowel{--fa:"\e589"}.fa-trowel-bricks{--fa:"\e58a"}.fa-truck-arrow-right{--fa:"\e58b"}.fa-truck-droplet{--fa:"\e58c"}.fa-truck-field{--fa:"\e58d"}.fa-truck-field-un{--fa:"\e58e"}.fa-truck-plane{--fa:"\e58f"}.fa-users-between-lines{--fa:"\e591"}.fa-users-line{--fa:"\e592"}.fa-users-rays{--fa:"\e593"}.fa-users-rectangle{--fa:"\e594"}.fa-users-viewfinder{--fa:"\e595"}.fa-vial-circle-check{--fa:"\e596"}.fa-vial-virus{--fa:"\e597"}.fa-wheat-awn-circle-exclamation{--fa:"\e598"}.fa-worm{--fa:"\e599"}.fa-xmarks-lines{--fa:"\e59a"}.fa-child-dress{--fa:"\e59c"}.fa-child-reaching{--fa:"\e59d"}.fa-file-circle-check{--fa:"\e5a0"}.fa-file-circle-xmark{--fa:"\e5a1"}.fa-person-through-window{--fa:"\e5a9"}.fa-plant-wilt{--fa:"\e5aa"}.fa-stapler{--fa:"\e5af"}.fa-train-tram{--fa:"\e5b4"}.fa-table-cells-column-lock{--fa:"\e678"}.fa-table-cells-row-lock{--fa:"\e67a"}.fa-thumb-tack-slash,.fa-thumbtack-slash{--fa:"\e68f"}.fa-table-cells-row-unlock{--fa:"\e691"}.fa-chart-diagram{--fa:"\e695"}.fa-comment-nodes{--fa:"\e696"}.fa-file-fragment{--fa:"\e697"}.fa-file-half-dashed{--fa:"\e698"}.fa-hexagon-nodes{--fa:"\e699"}.fa-hexagon-nodes-bolt{--fa:"\e69a"}.fa-square-binary{--fa:"\e69b"}.fa-pentagon{--fa:"\e790"}.fa-non-binary{--fa:"\e807"}.fa-spiral{--fa:"\e80a"}.fa-mobile-vibrate{--fa:"\e816"}.fa-single-quote-left{--fa:"\e81b"}.fa-single-quote-right{--fa:"\e81c"}.fa-bus-side{--fa:"\e81d"}.fa-heptagon,.fa-septagon{--fa:"\e820"}.fa-glass-martini,.fa-martini-glass-empty{--fa:"\f000"}.fa-music{--fa:"\f001"}.fa-magnifying-glass,.fa-search{--fa:"\f002"}.fa-heart{--fa:"\f004"}.fa-star{--fa:"\f005"}.fa-user,.fa-user-alt,.fa-user-large{--fa:"\f007"}.fa-film,.fa-film-alt,.fa-film-simple{--fa:"\f008"}.fa-table-cells-large,.fa-th-large{--fa:"\f009"}.fa-table-cells,.fa-th{--fa:"\f00a"}.fa-table-list,.fa-th-list{--fa:"\f00b"}.fa-check{--fa:"\f00c"}.fa-close,.fa-multiply,.fa-remove,.fa-times,.fa-xmark{--fa:"\f00d"}.fa-magnifying-glass-plus,.fa-search-plus{--fa:"\f00e"}.fa-magnifying-glass-minus,.fa-search-minus{--fa:"\f010"}.fa-power-off{--fa:"\f011"}.fa-signal,.fa-signal-5,.fa-signal-perfect{--fa:"\f012"}.fa-cog,.fa-gear{--fa:"\f013"}.fa-home,.fa-home-alt,.fa-home-lg-alt,.fa-house{--fa:"\f015"}.fa-clock,.fa-clock-four{--fa:"\f017"}.fa-road{--fa:"\f018"}.fa-download{--fa:"\f019"}.fa-inbox{--fa:"\f01c"}.fa-arrow-right-rotate,.fa-arrow-rotate-forward,.fa-arrow-rotate-right,.fa-redo{--fa:"\f01e"}.fa-arrows-rotate,.fa-refresh,.fa-sync{--fa:"\f021"}.fa-list-alt,.fa-rectangle-list{--fa:"\f022"}.fa-lock{--fa:"\f023"}.fa-flag{--fa:"\f024"}.fa-headphones,.fa-headphones-alt,.fa-headphones-simple{--fa:"\f025"}.fa-volume-off{--fa:"\f026"}.fa-volume-down,.fa-volume-low{--fa:"\f027"}.fa-volume-high,.fa-volume-up{--fa:"\f028"}.fa-qrcode{--fa:"\f029"}.fa-barcode{--fa:"\f02a"}.fa-tag{--fa:"\f02b"}.fa-tags{--fa:"\f02c"}.fa-book{--fa:"\f02d"}.fa-bookmark{--fa:"\f02e"}.fa-print{--fa:"\f02f"}.fa-camera,.fa-camera-alt{--fa:"\f030"}.fa-font{--fa:"\f031"}.fa-bold{--fa:"\f032"}.fa-italic{--fa:"\f033"}.fa-text-height{--fa:"\f034"}.fa-text-width{--fa:"\f035"}.fa-align-left{--fa:"\f036"}.fa-align-center{--fa:"\f037"}.fa-align-right{--fa:"\f038"}.fa-align-justify{--fa:"\f039"}.fa-list,.fa-list-squares{--fa:"\f03a"}.fa-dedent,.fa-outdent{--fa:"\f03b"}.fa-indent{--fa:"\f03c"}.fa-video,.fa-video-camera{--fa:"\f03d"}.fa-image{--fa:"\f03e"}.fa-location-pin,.fa-map-marker{--fa:"\f041"}.fa-adjust,.fa-circle-half-stroke{--fa:"\f042"}.fa-droplet,.fa-tint{--fa:"\f043"}.fa-edit,.fa-pen-to-square{--fa:"\f044"}.fa-arrows,.fa-arrows-up-down-left-right{--fa:"\f047"}.fa-backward-step,.fa-step-backward{--fa:"\f048"}.fa-backward-fast,.fa-fast-backward{--fa:"\f049"}.fa-backward{--fa:"\f04a"}.fa-play{--fa:"\f04b"}.fa-pause{--fa:"\f04c"}.fa-stop{--fa:"\f04d"}.fa-forward{--fa:"\f04e"}.fa-fast-forward,.fa-forward-fast{--fa:"\f050"}.fa-forward-step,.fa-step-forward{--fa:"\f051"}.fa-eject{--fa:"\f052"}.fa-chevron-left{--fa:"\f053"}.fa-chevron-right{--fa:"\f054"}.fa-circle-plus,.fa-plus-circle{--fa:"\f055"}.fa-circle-minus,.fa-minus-circle{--fa:"\f056"}.fa-circle-xmark,.fa-times-circle,.fa-xmark-circle{--fa:"\f057"}.fa-check-circle,.fa-circle-check{--fa:"\f058"}.fa-circle-question,.fa-question-circle{--fa:"\f059"}.fa-circle-info,.fa-info-circle{--fa:"\f05a"}.fa-crosshairs{--fa:"\f05b"}.fa-ban,.fa-cancel{--fa:"\f05e"}.fa-arrow-left{--fa:"\f060"}.fa-arrow-right{--fa:"\f061"}.fa-arrow-up{--fa:"\f062"}.fa-arrow-down{--fa:"\f063"}.fa-mail-forward,.fa-share{--fa:"\f064"}.fa-expand{--fa:"\f065"}.fa-compress{--fa:"\f066"}.fa-minus,.fa-subtract{--fa:"\f068"}.fa-circle-exclamation,.fa-exclamation-circle{--fa:"\f06a"}.fa-gift{--fa:"\f06b"}.fa-leaf{--fa:"\f06c"}.fa-fire{--fa:"\f06d"}.fa-eye{--fa:"\f06e"}.fa-eye-slash{--fa:"\f070"}.fa-exclamation-triangle,.fa-triangle-exclamation,.fa-warning{--fa:"\f071"}.fa-plane{--fa:"\f072"}.fa-calendar-alt,.fa-calendar-days{--fa:"\f073"}.fa-random,.fa-shuffle{--fa:"\f074"}.fa-comment{--fa:"\f075"}.fa-magnet{--fa:"\f076"}.fa-chevron-up{--fa:"\f077"}.fa-chevron-down{--fa:"\f078"}.fa-retweet{--fa:"\f079"}.fa-cart-shopping,.fa-shopping-cart{--fa:"\f07a"}.fa-folder,.fa-folder-blank{--fa:"\f07b"}.fa-folder-open{--fa:"\f07c"}.fa-arrows-up-down,.fa-arrows-v{--fa:"\f07d"}.fa-arrows-h,.fa-arrows-left-right{--fa:"\f07e"}.fa-bar-chart,.fa-chart-bar{--fa:"\f080"}.fa-camera-retro{--fa:"\f083"}.fa-key{--fa:"\f084"}.fa-cogs,.fa-gears{--fa:"\f085"}.fa-comments{--fa:"\f086"}.fa-star-half{--fa:"\f089"}.fa-arrow-right-from-bracket,.fa-sign-out{--fa:"\f08b"}.fa-thumb-tack,.fa-thumbtack{--fa:"\f08d"}.fa-arrow-up-right-from-square,.fa-external-link{--fa:"\f08e"}.fa-arrow-right-to-bracket,.fa-sign-in{--fa:"\f090"}.fa-trophy{--fa:"\f091"}.fa-upload{--fa:"\f093"}.fa-lemon{--fa:"\f094"}.fa-phone{--fa:"\f095"}.fa-phone-square,.fa-square-phone{--fa:"\f098"}.fa-unlock{--fa:"\f09c"}.fa-credit-card,.fa-credit-card-alt{--fa:"\f09d"}.fa-feed,.fa-rss{--fa:"\f09e"}.fa-hard-drive,.fa-hdd{--fa:"\f0a0"}.fa-bullhorn{--fa:"\f0a1"}.fa-certificate{--fa:"\f0a3"}.fa-hand-point-right{--fa:"\f0a4"}.fa-hand-point-left{--fa:"\f0a5"}.fa-hand-point-up{--fa:"\f0a6"}.fa-hand-point-down{--fa:"\f0a7"}.fa-arrow-circle-left,.fa-circle-arrow-left{--fa:"\f0a8"}.fa-arrow-circle-right,.fa-circle-arrow-right{--fa:"\f0a9"}.fa-arrow-circle-up,.fa-circle-arrow-up{--fa:"\f0aa"}.fa-arrow-circle-down,.fa-circle-arrow-down{--fa:"\f0ab"}.fa-globe{--fa:"\f0ac"}.fa-wrench{--fa:"\f0ad"}.fa-list-check,.fa-tasks{--fa:"\f0ae"}.fa-filter{--fa:"\f0b0"}.fa-briefcase{--fa:"\f0b1"}.fa-arrows-alt,.fa-up-down-left-right{--fa:"\f0b2"}.fa-users{--fa:"\f0c0"}.fa-chain,.fa-link{--fa:"\f0c1"}.fa-cloud{--fa:"\f0c2"}.fa-flask{--fa:"\f0c3"}.fa-cut,.fa-scissors{--fa:"\f0c4"}.fa-copy{--fa:"\f0c5"}.fa-paperclip{--fa:"\f0c6"}.fa-floppy-disk,.fa-save{--fa:"\f0c7"}.fa-square{--fa:"\f0c8"}.fa-bars,.fa-navicon{--fa:"\f0c9"}.fa-list-dots,.fa-list-ul{--fa:"\f0ca"}.fa-list-1-2,.fa-list-numeric,.fa-list-ol{--fa:"\f0cb"}.fa-strikethrough{--fa:"\f0cc"}.fa-underline{--fa:"\f0cd"}.fa-table{--fa:"\f0ce"}.fa-magic,.fa-wand-magic{--fa:"\f0d0"}.fa-truck{--fa:"\f0d1"}.fa-money-bill{--fa:"\f0d6"}.fa-caret-down{--fa:"\f0d7"}.fa-caret-up{--fa:"\f0d8"}.fa-caret-left{--fa:"\f0d9"}.fa-caret-right{--fa:"\f0da"}.fa-columns,.fa-table-columns{--fa:"\f0db"}.fa-sort,.fa-unsorted{--fa:"\f0dc"}.fa-sort-desc,.fa-sort-down{--fa:"\f0dd"}.fa-sort-asc,.fa-sort-up{--fa:"\f0de"}.fa-envelope{--fa:"\f0e0"}.fa-arrow-left-rotate,.fa-arrow-rotate-back,.fa-arrow-rotate-backward,.fa-arrow-rotate-left,.fa-undo{--fa:"\f0e2"}.fa-gavel,.fa-legal{--fa:"\f0e3"}.fa-bolt,.fa-zap{--fa:"\f0e7"}.fa-sitemap{--fa:"\f0e8"}.fa-umbrella{--fa:"\f0e9"}.fa-file-clipboard,.fa-paste{--fa:"\f0ea"}.fa-lightbulb{--fa:"\f0eb"}.fa-arrow-right-arrow-left,.fa-exchange{--fa:"\f0ec"}.fa-cloud-arrow-down,.fa-cloud-download,.fa-cloud-download-alt{--fa:"\f0ed"}.fa-cloud-arrow-up,.fa-cloud-upload,.fa-cloud-upload-alt{--fa:"\f0ee"}.fa-user-doctor,.fa-user-md{--fa:"\f0f0"}.fa-stethoscope{--fa:"\f0f1"}.fa-suitcase{--fa:"\f0f2"}.fa-bell{--fa:"\f0f3"}.fa-coffee,.fa-mug-saucer{--fa:"\f0f4"}.fa-hospital,.fa-hospital-alt,.fa-hospital-wide{--fa:"\f0f8"}.fa-ambulance,.fa-truck-medical{--fa:"\f0f9"}.fa-medkit,.fa-suitcase-medical{--fa:"\f0fa"}.fa-fighter-jet,.fa-jet-fighter{--fa:"\f0fb"}.fa-beer,.fa-beer-mug-empty{--fa:"\f0fc"}.fa-h-square,.fa-square-h{--fa:"\f0fd"}.fa-plus-square,.fa-square-plus{--fa:"\f0fe"}.fa-angle-double-left,.fa-angles-left{--fa:"\f100"}.fa-angle-double-right,.fa-angles-right{--fa:"\f101"}.fa-angle-double-up,.fa-angles-up{--fa:"\f102"}.fa-angle-double-down,.fa-angles-down{--fa:"\f103"}.fa-angle-left{--fa:"\f104"}.fa-angle-right{--fa:"\f105"}.fa-angle-up{--fa:"\f106"}.fa-angle-down{--fa:"\f107"}.fa-laptop{--fa:"\f109"}.fa-tablet-button{--fa:"\f10a"}.fa-mobile-button{--fa:"\f10b"}.fa-quote-left,.fa-quote-left-alt{--fa:"\f10d"}.fa-quote-right,.fa-quote-right-alt{--fa:"\f10e"}.fa-spinner{--fa:"\f110"}.fa-circle{--fa:"\f111"}.fa-face-smile,.fa-smile{--fa:"\f118"}.fa-face-frown,.fa-frown{--fa:"\f119"}.fa-face-meh,.fa-meh{--fa:"\f11a"}.fa-gamepad{--fa:"\f11b"}.fa-keyboard{--fa:"\f11c"}.fa-flag-checkered{--fa:"\f11e"}.fa-terminal{--fa:"\f120"}.fa-code{--fa:"\f121"}.fa-mail-reply-all,.fa-reply-all{--fa:"\f122"}.fa-location-arrow{--fa:"\f124"}.fa-crop{--fa:"\f125"}.fa-code-branch{--fa:"\f126"}.fa-chain-broken,.fa-chain-slash,.fa-link-slash,.fa-unlink{--fa:"\f127"}.fa-info{--fa:"\f129"}.fa-superscript{--fa:"\f12b"}.fa-subscript{--fa:"\f12c"}.fa-eraser{--fa:"\f12d"}.fa-puzzle-piece{--fa:"\f12e"}.fa-microphone{--fa:"\f130"}.fa-microphone-slash{--fa:"\f131"}.fa-shield,.fa-shield-blank{--fa:"\f132"}.fa-calendar{--fa:"\f133"}.fa-fire-extinguisher{--fa:"\f134"}.fa-rocket{--fa:"\f135"}.fa-chevron-circle-left,.fa-circle-chevron-left{--fa:"\f137"}.fa-chevron-circle-right,.fa-circle-chevron-right{--fa:"\f138"}.fa-chevron-circle-up,.fa-circle-chevron-up{--fa:"\f139"}.fa-chevron-circle-down,.fa-circle-chevron-down{--fa:"\f13a"}.fa-anchor{--fa:"\f13d"}.fa-unlock-alt,.fa-unlock-keyhole{--fa:"\f13e"}.fa-bullseye{--fa:"\f140"}.fa-ellipsis,.fa-ellipsis-h{--fa:"\f141"}.fa-ellipsis-v,.fa-ellipsis-vertical{--fa:"\f142"}.fa-rss-square,.fa-square-rss{--fa:"\f143"}.fa-circle-play,.fa-play-circle{--fa:"\f144"}.fa-ticket{--fa:"\f145"}.fa-minus-square,.fa-square-minus{--fa:"\f146"}.fa-arrow-turn-up,.fa-level-up{--fa:"\f148"}.fa-arrow-turn-down,.fa-level-down{--fa:"\f149"}.fa-check-square,.fa-square-check{--fa:"\f14a"}.fa-pen-square,.fa-pencil-square,.fa-square-pen{--fa:"\f14b"}.fa-external-link-square,.fa-square-arrow-up-right{--fa:"\f14c"}.fa-share-from-square,.fa-share-square{--fa:"\f14d"}.fa-compass{--fa:"\f14e"}.fa-caret-square-down,.fa-square-caret-down{--fa:"\f150"}.fa-caret-square-up,.fa-square-caret-up{--fa:"\f151"}.fa-caret-square-right,.fa-square-caret-right{--fa:"\f152"}.fa-eur,.fa-euro,.fa-euro-sign{--fa:"\f153"}.fa-gbp,.fa-pound-sign,.fa-sterling-sign{--fa:"\f154"}.fa-rupee,.fa-rupee-sign{--fa:"\f156"}.fa-cny,.fa-jpy,.fa-rmb,.fa-yen,.fa-yen-sign{--fa:"\f157"}.fa-rouble,.fa-rub,.fa-ruble,.fa-ruble-sign{--fa:"\f158"}.fa-krw,.fa-won,.fa-won-sign{--fa:"\f159"}.fa-file{--fa:"\f15b"}.fa-file-alt,.fa-file-lines,.fa-file-text{--fa:"\f15c"}.fa-arrow-down-a-z,.fa-sort-alpha-asc,.fa-sort-alpha-down{--fa:"\f15d"}.fa-arrow-up-a-z,.fa-sort-alpha-up{--fa:"\f15e"}.fa-arrow-down-wide-short,.fa-sort-amount-asc,.fa-sort-amount-down{--fa:"\f160"}.fa-arrow-up-wide-short,.fa-sort-amount-up{--fa:"\f161"}.fa-arrow-down-1-9,.fa-sort-numeric-asc,.fa-sort-numeric-down{--fa:"\f162"}.fa-arrow-up-1-9,.fa-sort-numeric-up{--fa:"\f163"}.fa-thumbs-up{--fa:"\f164"}.fa-thumbs-down{--fa:"\f165"}.fa-arrow-down-long,.fa-long-arrow-down{--fa:"\f175"}.fa-arrow-up-long,.fa-long-arrow-up{--fa:"\f176"}.fa-arrow-left-long,.fa-long-arrow-left{--fa:"\f177"}.fa-arrow-right-long,.fa-long-arrow-right{--fa:"\f178"}.fa-female,.fa-person-dress{--fa:"\f182"}.fa-male,.fa-person{--fa:"\f183"}.fa-sun{--fa:"\f185"}.fa-moon{--fa:"\f186"}.fa-archive,.fa-box-archive{--fa:"\f187"}.fa-bug{--fa:"\f188"}.fa-caret-square-left,.fa-square-caret-left{--fa:"\f191"}.fa-circle-dot,.fa-dot-circle{--fa:"\f192"}.fa-wheelchair{--fa:"\f193"}.fa-lira-sign{--fa:"\f195"}.fa-shuttle-space,.fa-space-shuttle{--fa:"\f197"}.fa-envelope-square,.fa-square-envelope{--fa:"\f199"}.fa-bank,.fa-building-columns,.fa-institution,.fa-museum,.fa-university{--fa:"\f19c"}.fa-graduation-cap,.fa-mortar-board{--fa:"\f19d"}.fa-language{--fa:"\f1ab"}.fa-fax{--fa:"\f1ac"}.fa-building{--fa:"\f1ad"}.fa-child{--fa:"\f1ae"}.fa-paw{--fa:"\f1b0"}.fa-cube{--fa:"\f1b2"}.fa-cubes{--fa:"\f1b3"}.fa-recycle{--fa:"\f1b8"}.fa-automobile,.fa-car{--fa:"\f1b9"}.fa-cab,.fa-taxi{--fa:"\f1ba"}.fa-tree{--fa:"\f1bb"}.fa-database{--fa:"\f1c0"}.fa-file-pdf{--fa:"\f1c1"}.fa-file-word{--fa:"\f1c2"}.fa-file-excel{--fa:"\f1c3"}.fa-file-powerpoint{--fa:"\f1c4"}.fa-file-image{--fa:"\f1c5"}.fa-file-archive,.fa-file-zipper{--fa:"\f1c6"}.fa-file-audio{--fa:"\f1c7"}.fa-file-video{--fa:"\f1c8"}.fa-file-code{--fa:"\f1c9"}.fa-life-ring{--fa:"\f1cd"}.fa-circle-notch{--fa:"\f1ce"}.fa-paper-plane{--fa:"\f1d8"}.fa-clock-rotate-left,.fa-history{--fa:"\f1da"}.fa-header,.fa-heading{--fa:"\f1dc"}.fa-paragraph{--fa:"\f1dd"}.fa-sliders,.fa-sliders-h{--fa:"\f1de"}.fa-share-alt,.fa-share-nodes{--fa:"\f1e0"}.fa-share-alt-square,.fa-square-share-nodes{--fa:"\f1e1"}.fa-bomb{--fa:"\f1e2"}.fa-futbol,.fa-futbol-ball,.fa-soccer-ball{--fa:"\f1e3"}.fa-teletype,.fa-tty{--fa:"\f1e4"}.fa-binoculars{--fa:"\f1e5"}.fa-plug{--fa:"\f1e6"}.fa-newspaper{--fa:"\f1ea"}.fa-wifi,.fa-wifi-3,.fa-wifi-strong{--fa:"\f1eb"}.fa-calculator{--fa:"\f1ec"}.fa-bell-slash{--fa:"\f1f6"}.fa-trash{--fa:"\f1f8"}.fa-copyright{--fa:"\f1f9"}.fa-eye-dropper,.fa-eye-dropper-empty,.fa-eyedropper{--fa:"\f1fb"}.fa-paint-brush,.fa-paintbrush{--fa:"\f1fc"}.fa-birthday-cake,.fa-cake,.fa-cake-candles{--fa:"\f1fd"}.fa-area-chart,.fa-chart-area{--fa:"\f1fe"}.fa-chart-pie,.fa-pie-chart{--fa:"\f200"}.fa-chart-line,.fa-line-chart{--fa:"\f201"}.fa-toggle-off{--fa:"\f204"}.fa-toggle-on{--fa:"\f205"}.fa-bicycle{--fa:"\f206"}.fa-bus{--fa:"\f207"}.fa-closed-captioning{--fa:"\f20a"}.fa-ils,.fa-shekel,.fa-shekel-sign,.fa-sheqel,.fa-sheqel-sign{--fa:"\f20b"}.fa-cart-plus{--fa:"\f217"}.fa-cart-arrow-down{--fa:"\f218"}.fa-diamond{--fa:"\f219"}.fa-ship{--fa:"\f21a"}.fa-user-secret{--fa:"\f21b"}.fa-motorcycle{--fa:"\f21c"}.fa-street-view{--fa:"\f21d"}.fa-heart-pulse,.fa-heartbeat{--fa:"\f21e"}.fa-venus{--fa:"\f221"}.fa-mars{--fa:"\f222"}.fa-mercury{--fa:"\f223"}.fa-mars-and-venus{--fa:"\f224"}.fa-transgender,.fa-transgender-alt{--fa:"\f225"}.fa-venus-double{--fa:"\f226"}.fa-mars-double{--fa:"\f227"}.fa-venus-mars{--fa:"\f228"}.fa-mars-stroke{--fa:"\f229"}.fa-mars-stroke-up,.fa-mars-stroke-v{--fa:"\f22a"}.fa-mars-stroke-h,.fa-mars-stroke-right{--fa:"\f22b"}.fa-neuter{--fa:"\f22c"}.fa-genderless{--fa:"\f22d"}.fa-server{--fa:"\f233"}.fa-user-plus{--fa:"\f234"}.fa-user-times,.fa-user-xmark{--fa:"\f235"}.fa-bed{--fa:"\f236"}.fa-train{--fa:"\f238"}.fa-subway,.fa-train-subway{--fa:"\f239"}.fa-battery,.fa-battery-5,.fa-battery-full{--fa:"\f240"}.fa-battery-4,.fa-battery-three-quarters{--fa:"\f241"}.fa-battery-3,.fa-battery-half{--fa:"\f242"}.fa-battery-2,.fa-battery-quarter{--fa:"\f243"}.fa-battery-0,.fa-battery-empty{--fa:"\f244"}.fa-arrow-pointer,.fa-mouse-pointer{--fa:"\f245"}.fa-i-cursor{--fa:"\f246"}.fa-object-group{--fa:"\f247"}.fa-object-ungroup{--fa:"\f248"}.fa-note-sticky,.fa-sticky-note{--fa:"\f249"}.fa-clone{--fa:"\f24d"}.fa-balance-scale,.fa-scale-balanced{--fa:"\f24e"}.fa-hourglass-1,.fa-hourglass-start{--fa:"\f251"}.fa-hourglass-2,.fa-hourglass-half{--fa:"\f252"}.fa-hourglass-3,.fa-hourglass-end{--fa:"\f253"}.fa-hourglass,.fa-hourglass-empty{--fa:"\f254"}.fa-hand-back-fist,.fa-hand-rock{--fa:"\f255"}.fa-hand,.fa-hand-paper{--fa:"\f256"}.fa-hand-scissors{--fa:"\f257"}.fa-hand-lizard{--fa:"\f258"}.fa-hand-spock{--fa:"\f259"}.fa-hand-pointer{--fa:"\f25a"}.fa-hand-peace{--fa:"\f25b"}.fa-trademark{--fa:"\f25c"}.fa-registered{--fa:"\f25d"}.fa-television,.fa-tv,.fa-tv-alt{--fa:"\f26c"}.fa-calendar-plus{--fa:"\f271"}.fa-calendar-minus{--fa:"\f272"}.fa-calendar-times,.fa-calendar-xmark{--fa:"\f273"}.fa-calendar-check{--fa:"\f274"}.fa-industry{--fa:"\f275"}.fa-map-pin{--fa:"\f276"}.fa-map-signs,.fa-signs-post{--fa:"\f277"}.fa-map{--fa:"\f279"}.fa-comment-alt,.fa-message{--fa:"\f27a"}.fa-circle-pause,.fa-pause-circle{--fa:"\f28b"}.fa-circle-stop,.fa-stop-circle{--fa:"\f28d"}.fa-bag-shopping,.fa-shopping-bag{--fa:"\f290"}.fa-basket-shopping,.fa-shopping-basket{--fa:"\f291"}.fa-universal-access{--fa:"\f29a"}.fa-blind,.fa-person-walking-with-cane{--fa:"\f29d"}.fa-audio-description{--fa:"\f29e"}.fa-phone-volume,.fa-volume-control-phone{--fa:"\f2a0"}.fa-braille{--fa:"\f2a1"}.fa-assistive-listening-systems,.fa-ear-listen{--fa:"\f2a2"}.fa-american-sign-language-interpreting,.fa-asl-interpreting,.fa-hands-american-sign-language-interpreting,.fa-hands-asl-interpreting{--fa:"\f2a3"}.fa-deaf,.fa-deafness,.fa-ear-deaf,.fa-hard-of-hearing{--fa:"\f2a4"}.fa-hands,.fa-sign-language,.fa-signing{--fa:"\f2a7"}.fa-eye-low-vision,.fa-low-vision{--fa:"\f2a8"}.fa-handshake,.fa-handshake-alt,.fa-handshake-simple{--fa:"\f2b5"}.fa-envelope-open{--fa:"\f2b6"}.fa-address-book,.fa-contact-book{--fa:"\f2b9"}.fa-address-card,.fa-contact-card,.fa-vcard{--fa:"\f2bb"}.fa-circle-user,.fa-user-circle{--fa:"\f2bd"}.fa-id-badge{--fa:"\f2c1"}.fa-drivers-license,.fa-id-card{--fa:"\f2c2"}.fa-temperature-4,.fa-temperature-full,.fa-thermometer-4,.fa-thermometer-full{--fa:"\f2c7"}.fa-temperature-3,.fa-temperature-three-quarters,.fa-thermometer-3,.fa-thermometer-three-quarters{--fa:"\f2c8"}.fa-temperature-2,.fa-temperature-half,.fa-thermometer-2,.fa-thermometer-half{--fa:"\f2c9"}.fa-temperature-1,.fa-temperature-quarter,.fa-thermometer-1,.fa-thermometer-quarter{--fa:"\f2ca"}.fa-temperature-0,.fa-temperature-empty,.fa-thermometer-0,.fa-thermometer-empty{--fa:"\f2cb"}.fa-shower{--fa:"\f2cc"}.fa-bath,.fa-bathtub{--fa:"\f2cd"}.fa-podcast{--fa:"\f2ce"}.fa-window-maximize{--fa:"\f2d0"}.fa-window-minimize{--fa:"\f2d1"}.fa-window-restore{--fa:"\f2d2"}.fa-square-xmark,.fa-times-square,.fa-xmark-square{--fa:"\f2d3"}.fa-microchip{--fa:"\f2db"}.fa-snowflake{--fa:"\f2dc"}.fa-spoon,.fa-utensil-spoon{--fa:"\f2e5"}.fa-cutlery,.fa-utensils{--fa:"\f2e7"}.fa-rotate-back,.fa-rotate-backward,.fa-rotate-left,.fa-undo-alt{--fa:"\f2ea"}.fa-trash-alt,.fa-trash-can{--fa:"\f2ed"}.fa-rotate,.fa-sync-alt{--fa:"\f2f1"}.fa-stopwatch{--fa:"\f2f2"}.fa-right-from-bracket,.fa-sign-out-alt{--fa:"\f2f5"}.fa-right-to-bracket,.fa-sign-in-alt{--fa:"\f2f6"}.fa-redo-alt,.fa-rotate-forward,.fa-rotate-right{--fa:"\f2f9"}.fa-poo{--fa:"\f2fe"}.fa-images{--fa:"\f302"}.fa-pencil,.fa-pencil-alt{--fa:"\f303"}.fa-pen{--fa:"\f304"}.fa-pen-alt,.fa-pen-clip{--fa:"\f305"}.fa-octagon{--fa:"\f306"}.fa-down-long,.fa-long-arrow-alt-down{--fa:"\f309"}.fa-left-long,.fa-long-arrow-alt-left{--fa:"\f30a"}.fa-long-arrow-alt-right,.fa-right-long{--fa:"\f30b"}.fa-long-arrow-alt-up,.fa-up-long{--fa:"\f30c"}.fa-hexagon{--fa:"\f312"}.fa-file-edit,.fa-file-pen{--fa:"\f31c"}.fa-expand-arrows-alt,.fa-maximize{--fa:"\f31e"}.fa-clipboard{--fa:"\f328"}.fa-arrows-alt-h,.fa-left-right{--fa:"\f337"}.fa-arrows-alt-v,.fa-up-down{--fa:"\f338"}.fa-alarm-clock{--fa:"\f34e"}.fa-arrow-alt-circle-down,.fa-circle-down{--fa:"\f358"}.fa-arrow-alt-circle-left,.fa-circle-left{--fa:"\f359"}.fa-arrow-alt-circle-right,.fa-circle-right{--fa:"\f35a"}.fa-arrow-alt-circle-up,.fa-circle-up{--fa:"\f35b"}.fa-external-link-alt,.fa-up-right-from-square{--fa:"\f35d"}.fa-external-link-square-alt,.fa-square-up-right{--fa:"\f360"}.fa-exchange-alt,.fa-right-left{--fa:"\f362"}.fa-repeat{--fa:"\f363"}.fa-code-commit{--fa:"\f386"}.fa-code-merge{--fa:"\f387"}.fa-desktop,.fa-desktop-alt{--fa:"\f390"}.fa-gem{--fa:"\f3a5"}.fa-level-down-alt,.fa-turn-down{--fa:"\f3be"}.fa-level-up-alt,.fa-turn-up{--fa:"\f3bf"}.fa-lock-open{--fa:"\f3c1"}.fa-location-dot,.fa-map-marker-alt{--fa:"\f3c5"}.fa-microphone-alt,.fa-microphone-lines{--fa:"\f3c9"}.fa-mobile-alt,.fa-mobile-screen-button{--fa:"\f3cd"}.fa-mobile,.fa-mobile-android,.fa-mobile-phone{--fa:"\f3ce"}.fa-mobile-android-alt,.fa-mobile-screen{--fa:"\f3cf"}.fa-money-bill-1,.fa-money-bill-alt{--fa:"\f3d1"}.fa-phone-slash{--fa:"\f3dd"}.fa-image-portrait,.fa-portrait{--fa:"\f3e0"}.fa-mail-reply,.fa-reply{--fa:"\f3e5"}.fa-shield-alt,.fa-shield-halved{--fa:"\f3ed"}.fa-tablet-alt,.fa-tablet-screen-button{--fa:"\f3fa"}.fa-tablet,.fa-tablet-android{--fa:"\f3fb"}.fa-ticket-alt,.fa-ticket-simple{--fa:"\f3ff"}.fa-rectangle-times,.fa-rectangle-xmark,.fa-times-rectangle,.fa-window-close{--fa:"\f410"}.fa-compress-alt,.fa-down-left-and-up-right-to-center{--fa:"\f422"}.fa-expand-alt,.fa-up-right-and-down-left-from-center{--fa:"\f424"}.fa-baseball-bat-ball{--fa:"\f432"}.fa-baseball,.fa-baseball-ball{--fa:"\f433"}.fa-basketball,.fa-basketball-ball{--fa:"\f434"}.fa-bowling-ball{--fa:"\f436"}.fa-chess{--fa:"\f439"}.fa-chess-bishop{--fa:"\f43a"}.fa-chess-board{--fa:"\f43c"}.fa-chess-king{--fa:"\f43f"}.fa-chess-knight{--fa:"\f441"}.fa-chess-pawn{--fa:"\f443"}.fa-chess-queen{--fa:"\f445"}.fa-chess-rook{--fa:"\f447"}.fa-dumbbell{--fa:"\f44b"}.fa-football,.fa-football-ball{--fa:"\f44e"}.fa-golf-ball,.fa-golf-ball-tee{--fa:"\f450"}.fa-hockey-puck{--fa:"\f453"}.fa-broom-ball,.fa-quidditch,.fa-quidditch-broom-ball{--fa:"\f458"}.fa-square-full{--fa:"\f45c"}.fa-ping-pong-paddle-ball,.fa-table-tennis,.fa-table-tennis-paddle-ball{--fa:"\f45d"}.fa-volleyball,.fa-volleyball-ball{--fa:"\f45f"}.fa-allergies,.fa-hand-dots{--fa:"\f461"}.fa-band-aid,.fa-bandage{--fa:"\f462"}.fa-box{--fa:"\f466"}.fa-boxes,.fa-boxes-alt,.fa-boxes-stacked{--fa:"\f468"}.fa-briefcase-medical{--fa:"\f469"}.fa-burn,.fa-fire-flame-simple{--fa:"\f46a"}.fa-capsules{--fa:"\f46b"}.fa-clipboard-check{--fa:"\f46c"}.fa-clipboard-list{--fa:"\f46d"}.fa-diagnoses,.fa-person-dots-from-line{--fa:"\f470"}.fa-dna{--fa:"\f471"}.fa-dolly,.fa-dolly-box{--fa:"\f472"}.fa-cart-flatbed,.fa-dolly-flatbed{--fa:"\f474"}.fa-file-medical{--fa:"\f477"}.fa-file-medical-alt,.fa-file-waveform{--fa:"\f478"}.fa-first-aid,.fa-kit-medical{--fa:"\f479"}.fa-circle-h,.fa-hospital-symbol{--fa:"\f47e"}.fa-id-card-alt,.fa-id-card-clip{--fa:"\f47f"}.fa-notes-medical{--fa:"\f481"}.fa-pallet{--fa:"\f482"}.fa-pills{--fa:"\f484"}.fa-prescription-bottle{--fa:"\f485"}.fa-prescription-bottle-alt,.fa-prescription-bottle-medical{--fa:"\f486"}.fa-bed-pulse,.fa-procedures{--fa:"\f487"}.fa-shipping-fast,.fa-truck-fast{--fa:"\f48b"}.fa-smoking{--fa:"\f48d"}.fa-syringe{--fa:"\f48e"}.fa-tablets{--fa:"\f490"}.fa-thermometer{--fa:"\f491"}.fa-vial{--fa:"\f492"}.fa-vials{--fa:"\f493"}.fa-warehouse{--fa:"\f494"}.fa-weight,.fa-weight-scale{--fa:"\f496"}.fa-x-ray{--fa:"\f497"}.fa-box-open{--fa:"\f49e"}.fa-comment-dots,.fa-commenting{--fa:"\f4ad"}.fa-comment-slash{--fa:"\f4b3"}.fa-couch{--fa:"\f4b8"}.fa-circle-dollar-to-slot,.fa-donate{--fa:"\f4b9"}.fa-dove{--fa:"\f4ba"}.fa-hand-holding{--fa:"\f4bd"}.fa-hand-holding-heart{--fa:"\f4be"}.fa-hand-holding-dollar,.fa-hand-holding-usd{--fa:"\f4c0"}.fa-hand-holding-droplet,.fa-hand-holding-water{--fa:"\f4c1"}.fa-hands-holding{--fa:"\f4c2"}.fa-hands-helping,.fa-handshake-angle{--fa:"\f4c4"}.fa-parachute-box{--fa:"\f4cd"}.fa-people-carry,.fa-people-carry-box{--fa:"\f4ce"}.fa-piggy-bank{--fa:"\f4d3"}.fa-ribbon{--fa:"\f4d6"}.fa-route{--fa:"\f4d7"}.fa-seedling,.fa-sprout{--fa:"\f4d8"}.fa-sign,.fa-sign-hanging{--fa:"\f4d9"}.fa-face-smile-wink,.fa-smile-wink{--fa:"\f4da"}.fa-tape{--fa:"\f4db"}.fa-truck-loading,.fa-truck-ramp-box{--fa:"\f4de"}.fa-truck-moving{--fa:"\f4df"}.fa-video-slash{--fa:"\f4e2"}.fa-wine-glass{--fa:"\f4e3"}.fa-user-astronaut{--fa:"\f4fb"}.fa-user-check{--fa:"\f4fc"}.fa-user-clock{--fa:"\f4fd"}.fa-user-cog,.fa-user-gear{--fa:"\f4fe"}.fa-user-edit,.fa-user-pen{--fa:"\f4ff"}.fa-user-friends,.fa-user-group{--fa:"\f500"}.fa-user-graduate{--fa:"\f501"}.fa-user-lock{--fa:"\f502"}.fa-user-minus{--fa:"\f503"}.fa-user-ninja{--fa:"\f504"}.fa-user-shield{--fa:"\f505"}.fa-user-alt-slash,.fa-user-large-slash,.fa-user-slash{--fa:"\f506"}.fa-user-tag{--fa:"\f507"}.fa-user-tie{--fa:"\f508"}.fa-users-cog,.fa-users-gear{--fa:"\f509"}.fa-balance-scale-left,.fa-scale-unbalanced{--fa:"\f515"}.fa-balance-scale-right,.fa-scale-unbalanced-flip{--fa:"\f516"}.fa-blender{--fa:"\f517"}.fa-book-open{--fa:"\f518"}.fa-broadcast-tower,.fa-tower-broadcast{--fa:"\f519"}.fa-broom{--fa:"\f51a"}.fa-blackboard,.fa-chalkboard{--fa:"\f51b"}.fa-chalkboard-teacher,.fa-chalkboard-user{--fa:"\f51c"}.fa-church{--fa:"\f51d"}.fa-coins{--fa:"\f51e"}.fa-compact-disc{--fa:"\f51f"}.fa-crow{--fa:"\f520"}.fa-crown{--fa:"\f521"}.fa-dice{--fa:"\f522"}.fa-dice-five{--fa:"\f523"}.fa-dice-four{--fa:"\f524"}.fa-dice-one{--fa:"\f525"}.fa-dice-six{--fa:"\f526"}.fa-dice-three{--fa:"\f527"}.fa-dice-two{--fa:"\f528"}.fa-divide{--fa:"\f529"}.fa-door-closed{--fa:"\f52a"}.fa-door-open{--fa:"\f52b"}.fa-feather{--fa:"\f52d"}.fa-frog{--fa:"\f52e"}.fa-gas-pump{--fa:"\f52f"}.fa-glasses{--fa:"\f530"}.fa-greater-than-equal{--fa:"\f532"}.fa-helicopter{--fa:"\f533"}.fa-infinity{--fa:"\f534"}.fa-kiwi-bird{--fa:"\f535"}.fa-less-than-equal{--fa:"\f537"}.fa-memory{--fa:"\f538"}.fa-microphone-alt-slash,.fa-microphone-lines-slash{--fa:"\f539"}.fa-money-bill-wave{--fa:"\f53a"}.fa-money-bill-1-wave,.fa-money-bill-wave-alt{--fa:"\f53b"}.fa-money-check{--fa:"\f53c"}.fa-money-check-alt,.fa-money-check-dollar{--fa:"\f53d"}.fa-not-equal{--fa:"\f53e"}.fa-palette{--fa:"\f53f"}.fa-parking,.fa-square-parking{--fa:"\f540"}.fa-diagram-project,.fa-project-diagram{--fa:"\f542"}.fa-receipt{--fa:"\f543"}.fa-robot{--fa:"\f544"}.fa-ruler{--fa:"\f545"}.fa-ruler-combined{--fa:"\f546"}.fa-ruler-horizontal{--fa:"\f547"}.fa-ruler-vertical{--fa:"\f548"}.fa-school{--fa:"\f549"}.fa-screwdriver{--fa:"\f54a"}.fa-shoe-prints{--fa:"\f54b"}.fa-skull{--fa:"\f54c"}.fa-ban-smoking,.fa-smoking-ban{--fa:"\f54d"}.fa-store{--fa:"\f54e"}.fa-shop,.fa-store-alt{--fa:"\f54f"}.fa-bars-staggered,.fa-reorder,.fa-stream{--fa:"\f550"}.fa-stroopwafel{--fa:"\f551"}.fa-toolbox{--fa:"\f552"}.fa-shirt,.fa-t-shirt,.fa-tshirt{--fa:"\f553"}.fa-person-walking,.fa-walking{--fa:"\f554"}.fa-wallet{--fa:"\f555"}.fa-angry,.fa-face-angry{--fa:"\f556"}.fa-archway{--fa:"\f557"}.fa-atlas,.fa-book-atlas{--fa:"\f558"}.fa-award{--fa:"\f559"}.fa-backspace,.fa-delete-left{--fa:"\f55a"}.fa-bezier-curve{--fa:"\f55b"}.fa-bong{--fa:"\f55c"}.fa-brush{--fa:"\f55d"}.fa-bus-alt,.fa-bus-simple{--fa:"\f55e"}.fa-cannabis{--fa:"\f55f"}.fa-check-double{--fa:"\f560"}.fa-cocktail,.fa-martini-glass-citrus{--fa:"\f561"}.fa-bell-concierge,.fa-concierge-bell{--fa:"\f562"}.fa-cookie{--fa:"\f563"}.fa-cookie-bite{--fa:"\f564"}.fa-crop-alt,.fa-crop-simple{--fa:"\f565"}.fa-digital-tachograph,.fa-tachograph-digital{--fa:"\f566"}.fa-dizzy,.fa-face-dizzy{--fa:"\f567"}.fa-compass-drafting,.fa-drafting-compass{--fa:"\f568"}.fa-drum{--fa:"\f569"}.fa-drum-steelpan{--fa:"\f56a"}.fa-feather-alt,.fa-feather-pointed{--fa:"\f56b"}.fa-file-contract{--fa:"\f56c"}.fa-file-arrow-down,.fa-file-download{--fa:"\f56d"}.fa-arrow-right-from-file,.fa-file-export{--fa:"\f56e"}.fa-arrow-right-to-file,.fa-file-import{--fa:"\f56f"}.fa-file-invoice{--fa:"\f570"}.fa-file-invoice-dollar{--fa:"\f571"}.fa-file-prescription{--fa:"\f572"}.fa-file-signature{--fa:"\f573"}.fa-file-arrow-up,.fa-file-upload{--fa:"\f574"}.fa-fill{--fa:"\f575"}.fa-fill-drip{--fa:"\f576"}.fa-fingerprint{--fa:"\f577"}.fa-fish{--fa:"\f578"}.fa-face-flushed,.fa-flushed{--fa:"\f579"}.fa-face-frown-open,.fa-frown-open{--fa:"\f57a"}.fa-glass-martini-alt,.fa-martini-glass{--fa:"\f57b"}.fa-earth-africa,.fa-globe-africa{--fa:"\f57c"}.fa-earth,.fa-earth-america,.fa-earth-americas,.fa-globe-americas{--fa:"\f57d"}.fa-earth-asia,.fa-globe-asia{--fa:"\f57e"}.fa-face-grimace,.fa-grimace{--fa:"\f57f"}.fa-face-grin,.fa-grin{--fa:"\f580"}.fa-face-grin-wide,.fa-grin-alt{--fa:"\f581"}.fa-face-grin-beam,.fa-grin-beam{--fa:"\f582"}.fa-face-grin-beam-sweat,.fa-grin-beam-sweat{--fa:"\f583"}.fa-face-grin-hearts,.fa-grin-hearts{--fa:"\f584"}.fa-face-grin-squint,.fa-grin-squint{--fa:"\f585"}.fa-face-grin-squint-tears,.fa-grin-squint-tears{--fa:"\f586"}.fa-face-grin-stars,.fa-grin-stars{--fa:"\f587"}.fa-face-grin-tears,.fa-grin-tears{--fa:"\f588"}.fa-face-grin-tongue,.fa-grin-tongue{--fa:"\f589"}.fa-face-grin-tongue-squint,.fa-grin-tongue-squint{--fa:"\f58a"}.fa-face-grin-tongue-wink,.fa-grin-tongue-wink{--fa:"\f58b"}.fa-face-grin-wink,.fa-grin-wink{--fa:"\f58c"}.fa-grid-horizontal,.fa-grip,.fa-grip-horizontal{--fa:"\f58d"}.fa-grid-vertical,.fa-grip-vertical{--fa:"\f58e"}.fa-headset{--fa:"\f590"}.fa-highlighter{--fa:"\f591"}.fa-hot-tub,.fa-hot-tub-person{--fa:"\f593"}.fa-hotel{--fa:"\f594"}.fa-joint{--fa:"\f595"}.fa-face-kiss,.fa-kiss{--fa:"\f596"}.fa-face-kiss-beam,.fa-kiss-beam{--fa:"\f597"}.fa-face-kiss-wink-heart,.fa-kiss-wink-heart{--fa:"\f598"}.fa-face-laugh,.fa-laugh{--fa:"\f599"}.fa-face-laugh-beam,.fa-laugh-beam{--fa:"\f59a"}.fa-face-laugh-squint,.fa-laugh-squint{--fa:"\f59b"}.fa-face-laugh-wink,.fa-laugh-wink{--fa:"\f59c"}.fa-cart-flatbed-suitcase,.fa-luggage-cart{--fa:"\f59d"}.fa-map-location,.fa-map-marked{--fa:"\f59f"}.fa-map-location-dot,.fa-map-marked-alt{--fa:"\f5a0"}.fa-marker{--fa:"\f5a1"}.fa-medal{--fa:"\f5a2"}.fa-face-meh-blank,.fa-meh-blank{--fa:"\f5a4"}.fa-face-rolling-eyes,.fa-meh-rolling-eyes{--fa:"\f5a5"}.fa-monument{--fa:"\f5a6"}.fa-mortar-pestle{--fa:"\f5a7"}.fa-paint-roller{--fa:"\f5aa"}.fa-passport{--fa:"\f5ab"}.fa-pen-fancy{--fa:"\f5ac"}.fa-pen-nib{--fa:"\f5ad"}.fa-pen-ruler,.fa-pencil-ruler{--fa:"\f5ae"}.fa-plane-arrival{--fa:"\f5af"}.fa-plane-departure{--fa:"\f5b0"}.fa-prescription{--fa:"\f5b1"}.fa-face-sad-cry,.fa-sad-cry{--fa:"\f5b3"}.fa-face-sad-tear,.fa-sad-tear{--fa:"\f5b4"}.fa-shuttle-van,.fa-van-shuttle{--fa:"\f5b6"}.fa-signature{--fa:"\f5b7"}.fa-face-smile-beam,.fa-smile-beam{--fa:"\f5b8"}.fa-solar-panel{--fa:"\f5ba"}.fa-spa{--fa:"\f5bb"}.fa-splotch{--fa:"\f5bc"}.fa-spray-can{--fa:"\f5bd"}.fa-stamp{--fa:"\f5bf"}.fa-star-half-alt,.fa-star-half-stroke{--fa:"\f5c0"}.fa-suitcase-rolling{--fa:"\f5c1"}.fa-face-surprise,.fa-surprise{--fa:"\f5c2"}.fa-swatchbook{--fa:"\f5c3"}.fa-person-swimming,.fa-swimmer{--fa:"\f5c4"}.fa-ladder-water,.fa-swimming-pool,.fa-water-ladder{--fa:"\f5c5"}.fa-droplet-slash,.fa-tint-slash{--fa:"\f5c7"}.fa-face-tired,.fa-tired{--fa:"\f5c8"}.fa-tooth{--fa:"\f5c9"}.fa-umbrella-beach{--fa:"\f5ca"}.fa-weight-hanging{--fa:"\f5cd"}.fa-wine-glass-alt,.fa-wine-glass-empty{--fa:"\f5ce"}.fa-air-freshener,.fa-spray-can-sparkles{--fa:"\f5d0"}.fa-apple-alt,.fa-apple-whole{--fa:"\f5d1"}.fa-atom{--fa:"\f5d2"}.fa-bone{--fa:"\f5d7"}.fa-book-open-reader,.fa-book-reader{--fa:"\f5da"}.fa-brain{--fa:"\f5dc"}.fa-car-alt,.fa-car-rear{--fa:"\f5de"}.fa-battery-car,.fa-car-battery{--fa:"\f5df"}.fa-car-burst,.fa-car-crash{--fa:"\f5e1"}.fa-car-side{--fa:"\f5e4"}.fa-charging-station{--fa:"\f5e7"}.fa-diamond-turn-right,.fa-directions{--fa:"\f5eb"}.fa-draw-polygon,.fa-vector-polygon{--fa:"\f5ee"}.fa-laptop-code{--fa:"\f5fc"}.fa-layer-group{--fa:"\f5fd"}.fa-location,.fa-location-crosshairs{--fa:"\f601"}.fa-lungs{--fa:"\f604"}.fa-microscope{--fa:"\f610"}.fa-oil-can{--fa:"\f613"}.fa-poop{--fa:"\f619"}.fa-shapes,.fa-triangle-circle-square{--fa:"\f61f"}.fa-star-of-life{--fa:"\f621"}.fa-dashboard,.fa-gauge,.fa-gauge-med,.fa-tachometer-alt-average{--fa:"\f624"}.fa-gauge-high,.fa-tachometer-alt,.fa-tachometer-alt-fast{--fa:"\f625"}.fa-gauge-simple,.fa-gauge-simple-med,.fa-tachometer-average{--fa:"\f629"}.fa-gauge-simple-high,.fa-tachometer,.fa-tachometer-fast{--fa:"\f62a"}.fa-teeth{--fa:"\f62e"}.fa-teeth-open{--fa:"\f62f"}.fa-masks-theater,.fa-theater-masks{--fa:"\f630"}.fa-traffic-light{--fa:"\f637"}.fa-truck-monster{--fa:"\f63b"}.fa-truck-pickup{--fa:"\f63c"}.fa-ad,.fa-rectangle-ad{--fa:"\f641"}.fa-ankh{--fa:"\f644"}.fa-bible,.fa-book-bible{--fa:"\f647"}.fa-briefcase-clock,.fa-business-time{--fa:"\f64a"}.fa-city{--fa:"\f64f"}.fa-comment-dollar{--fa:"\f651"}.fa-comments-dollar{--fa:"\f653"}.fa-cross{--fa:"\f654"}.fa-dharmachakra{--fa:"\f655"}.fa-envelope-open-text{--fa:"\f658"}.fa-folder-minus{--fa:"\f65d"}.fa-folder-plus{--fa:"\f65e"}.fa-filter-circle-dollar,.fa-funnel-dollar{--fa:"\f662"}.fa-gopuram{--fa:"\f664"}.fa-hamsa{--fa:"\f665"}.fa-bahai,.fa-haykal{--fa:"\f666"}.fa-jedi{--fa:"\f669"}.fa-book-journal-whills,.fa-journal-whills{--fa:"\f66a"}.fa-kaaba{--fa:"\f66b"}.fa-khanda{--fa:"\f66d"}.fa-landmark{--fa:"\f66f"}.fa-envelopes-bulk,.fa-mail-bulk{--fa:"\f674"}.fa-menorah{--fa:"\f676"}.fa-mosque{--fa:"\f678"}.fa-om{--fa:"\f679"}.fa-pastafarianism,.fa-spaghetti-monster-flying{--fa:"\f67b"}.fa-peace{--fa:"\f67c"}.fa-place-of-worship{--fa:"\f67f"}.fa-poll,.fa-square-poll-vertical{--fa:"\f681"}.fa-poll-h,.fa-square-poll-horizontal{--fa:"\f682"}.fa-person-praying,.fa-pray{--fa:"\f683"}.fa-hands-praying,.fa-praying-hands{--fa:"\f684"}.fa-book-quran,.fa-quran{--fa:"\f687"}.fa-magnifying-glass-dollar,.fa-search-dollar{--fa:"\f688"}.fa-magnifying-glass-location,.fa-search-location{--fa:"\f689"}.fa-socks{--fa:"\f696"}.fa-square-root-alt,.fa-square-root-variable{--fa:"\f698"}.fa-star-and-crescent{--fa:"\f699"}.fa-star-of-david{--fa:"\f69a"}.fa-synagogue{--fa:"\f69b"}.fa-scroll-torah,.fa-torah{--fa:"\f6a0"}.fa-torii-gate{--fa:"\f6a1"}.fa-vihara{--fa:"\f6a7"}.fa-volume-mute,.fa-volume-times,.fa-volume-xmark{--fa:"\f6a9"}.fa-yin-yang{--fa:"\f6ad"}.fa-blender-phone{--fa:"\f6b6"}.fa-book-dead,.fa-book-skull{--fa:"\f6b7"}.fa-campground{--fa:"\f6bb"}.fa-cat{--fa:"\f6be"}.fa-chair{--fa:"\f6c0"}.fa-cloud-moon{--fa:"\f6c3"}.fa-cloud-sun{--fa:"\f6c4"}.fa-cow{--fa:"\f6c8"}.fa-dice-d20{--fa:"\f6cf"}.fa-dice-d6{--fa:"\f6d1"}.fa-dog{--fa:"\f6d3"}.fa-dragon{--fa:"\f6d5"}.fa-drumstick-bite{--fa:"\f6d7"}.fa-dungeon{--fa:"\f6d9"}.fa-file-csv{--fa:"\f6dd"}.fa-fist-raised,.fa-hand-fist{--fa:"\f6de"}.fa-ghost{--fa:"\f6e2"}.fa-hammer{--fa:"\f6e3"}.fa-hanukiah{--fa:"\f6e6"}.fa-hat-wizard{--fa:"\f6e8"}.fa-hiking,.fa-person-hiking{--fa:"\f6ec"}.fa-hippo{--fa:"\f6ed"}.fa-horse{--fa:"\f6f0"}.fa-house-chimney-crack,.fa-house-damage{--fa:"\f6f1"}.fa-hryvnia,.fa-hryvnia-sign{--fa:"\f6f2"}.fa-mask{--fa:"\f6fa"}.fa-mountain{--fa:"\f6fc"}.fa-network-wired{--fa:"\f6ff"}.fa-otter{--fa:"\f700"}.fa-ring{--fa:"\f70b"}.fa-person-running,.fa-running{--fa:"\f70c"}.fa-scroll{--fa:"\f70e"}.fa-skull-crossbones{--fa:"\f714"}.fa-slash{--fa:"\f715"}.fa-spider{--fa:"\f717"}.fa-toilet-paper,.fa-toilet-paper-alt,.fa-toilet-paper-blank{--fa:"\f71e"}.fa-tractor{--fa:"\f722"}.fa-user-injured{--fa:"\f728"}.fa-vr-cardboard{--fa:"\f729"}.fa-wand-sparkles{--fa:"\f72b"}.fa-wind{--fa:"\f72e"}.fa-wine-bottle{--fa:"\f72f"}.fa-cloud-meatball{--fa:"\f73b"}.fa-cloud-moon-rain{--fa:"\f73c"}.fa-cloud-rain{--fa:"\f73d"}.fa-cloud-showers-heavy{--fa:"\f740"}.fa-cloud-sun-rain{--fa:"\f743"}.fa-democrat{--fa:"\f747"}.fa-flag-usa{--fa:"\f74d"}.fa-hurricane{--fa:"\f751"}.fa-landmark-alt,.fa-landmark-dome{--fa:"\f752"}.fa-meteor{--fa:"\f753"}.fa-person-booth{--fa:"\f756"}.fa-poo-bolt,.fa-poo-storm{--fa:"\f75a"}.fa-rainbow{--fa:"\f75b"}.fa-republican{--fa:"\f75e"}.fa-smog{--fa:"\f75f"}.fa-temperature-high{--fa:"\f769"}.fa-temperature-low{--fa:"\f76b"}.fa-cloud-bolt,.fa-thunderstorm{--fa:"\f76c"}.fa-tornado{--fa:"\f76f"}.fa-volcano{--fa:"\f770"}.fa-check-to-slot,.fa-vote-yea{--fa:"\f772"}.fa-water{--fa:"\f773"}.fa-baby{--fa:"\f77c"}.fa-baby-carriage,.fa-carriage-baby{--fa:"\f77d"}.fa-biohazard{--fa:"\f780"}.fa-blog{--fa:"\f781"}.fa-calendar-day{--fa:"\f783"}.fa-calendar-week{--fa:"\f784"}.fa-candy-cane{--fa:"\f786"}.fa-carrot{--fa:"\f787"}.fa-cash-register{--fa:"\f788"}.fa-compress-arrows-alt,.fa-minimize{--fa:"\f78c"}.fa-dumpster{--fa:"\f793"}.fa-dumpster-fire{--fa:"\f794"}.fa-ethernet{--fa:"\f796"}.fa-gifts{--fa:"\f79c"}.fa-champagne-glasses,.fa-glass-cheers{--fa:"\f79f"}.fa-glass-whiskey,.fa-whiskey-glass{--fa:"\f7a0"}.fa-earth-europe,.fa-globe-europe{--fa:"\f7a2"}.fa-grip-lines{--fa:"\f7a4"}.fa-grip-lines-vertical{--fa:"\f7a5"}.fa-guitar{--fa:"\f7a6"}.fa-heart-broken,.fa-heart-crack{--fa:"\f7a9"}.fa-holly-berry{--fa:"\f7aa"}.fa-horse-head{--fa:"\f7ab"}.fa-icicles{--fa:"\f7ad"}.fa-igloo{--fa:"\f7ae"}.fa-mitten{--fa:"\f7b5"}.fa-mug-hot{--fa:"\f7b6"}.fa-radiation{--fa:"\f7b9"}.fa-circle-radiation,.fa-radiation-alt{--fa:"\f7ba"}.fa-restroom{--fa:"\f7bd"}.fa-satellite{--fa:"\f7bf"}.fa-satellite-dish{--fa:"\f7c0"}.fa-sd-card{--fa:"\f7c2"}.fa-sim-card{--fa:"\f7c4"}.fa-person-skating,.fa-skating{--fa:"\f7c5"}.fa-person-skiing,.fa-skiing{--fa:"\f7c9"}.fa-person-skiing-nordic,.fa-skiing-nordic{--fa:"\f7ca"}.fa-sleigh{--fa:"\f7cc"}.fa-comment-sms,.fa-sms{--fa:"\f7cd"}.fa-person-snowboarding,.fa-snowboarding{--fa:"\f7ce"}.fa-snowman{--fa:"\f7d0"}.fa-snowplow{--fa:"\f7d2"}.fa-tenge,.fa-tenge-sign{--fa:"\f7d7"}.fa-toilet{--fa:"\f7d8"}.fa-screwdriver-wrench,.fa-tools{--fa:"\f7d9"}.fa-cable-car,.fa-tram{--fa:"\f7da"}.fa-fire-alt,.fa-fire-flame-curved{--fa:"\f7e4"}.fa-bacon{--fa:"\f7e5"}.fa-book-medical{--fa:"\f7e6"}.fa-bread-slice{--fa:"\f7ec"}.fa-cheese{--fa:"\f7ef"}.fa-clinic-medical,.fa-house-chimney-medical{--fa:"\f7f2"}.fa-clipboard-user{--fa:"\f7f3"}.fa-comment-medical{--fa:"\f7f5"}.fa-crutch{--fa:"\f7f7"}.fa-disease{--fa:"\f7fa"}.fa-egg{--fa:"\f7fb"}.fa-folder-tree{--fa:"\f802"}.fa-burger,.fa-hamburger{--fa:"\f805"}.fa-hand-middle-finger{--fa:"\f806"}.fa-hard-hat,.fa-hat-hard,.fa-helmet-safety{--fa:"\f807"}.fa-hospital-user{--fa:"\f80d"}.fa-hotdog{--fa:"\f80f"}.fa-ice-cream{--fa:"\f810"}.fa-laptop-medical{--fa:"\f812"}.fa-pager{--fa:"\f815"}.fa-pepper-hot{--fa:"\f816"}.fa-pizza-slice{--fa:"\f818"}.fa-sack-dollar{--fa:"\f81d"}.fa-book-tanakh,.fa-tanakh{--fa:"\f827"}.fa-bars-progress,.fa-tasks-alt{--fa:"\f828"}.fa-trash-arrow-up,.fa-trash-restore{--fa:"\f829"}.fa-trash-can-arrow-up,.fa-trash-restore-alt{--fa:"\f82a"}.fa-user-nurse{--fa:"\f82f"}.fa-wave-square{--fa:"\f83e"}.fa-biking,.fa-person-biking{--fa:"\f84a"}.fa-border-all{--fa:"\f84c"}.fa-border-none{--fa:"\f850"}.fa-border-style,.fa-border-top-left{--fa:"\f853"}.fa-digging,.fa-person-digging{--fa:"\f85e"}.fa-fan{--fa:"\f863"}.fa-heart-music-camera-bolt,.fa-icons{--fa:"\f86d"}.fa-phone-alt,.fa-phone-flip{--fa:"\f879"}.fa-phone-square-alt,.fa-square-phone-flip{--fa:"\f87b"}.fa-photo-film,.fa-photo-video{--fa:"\f87c"}.fa-remove-format,.fa-text-slash{--fa:"\f87d"}.fa-arrow-down-z-a,.fa-sort-alpha-desc,.fa-sort-alpha-down-alt{--fa:"\f881"}.fa-arrow-up-z-a,.fa-sort-alpha-up-alt{--fa:"\f882"}.fa-arrow-down-short-wide,.fa-sort-amount-desc,.fa-sort-amount-down-alt{--fa:"\f884"}.fa-arrow-up-short-wide,.fa-sort-amount-up-alt{--fa:"\f885"}.fa-arrow-down-9-1,.fa-sort-numeric-desc,.fa-sort-numeric-down-alt{--fa:"\f886"}.fa-arrow-up-9-1,.fa-sort-numeric-up-alt{--fa:"\f887"}.fa-spell-check{--fa:"\f891"}.fa-voicemail{--fa:"\f897"}.fa-hat-cowboy{--fa:"\f8c0"}.fa-hat-cowboy-side{--fa:"\f8c1"}.fa-computer-mouse,.fa-mouse{--fa:"\f8cc"}.fa-radio{--fa:"\f8d7"}.fa-record-vinyl{--fa:"\f8d9"}.fa-walkie-talkie{--fa:"\f8ef"}.fa-caravan{--fa:"\f8ff"}
:host,:root{--fa-family-brands:"Font Awesome 7 Brands";--fa-font-brands:normal 400 1em/1 var(--fa-family-brands)}@font-face{font-family:"Font Awesome 7 Brands";font-style:normal;font-weight:400;font-display:block;src:url(/assets/fa-brands-400-BfBXV7Mm.woff2)}.fa-brands,.fa-classic.fa-brands,.fab{--fa-family:var(--fa-family-brands);--fa-style:400}.fa-firefox-browser{--fa:"\e007"}.fa-ideal{--fa:"\e013"}.fa-microblog{--fa:"\e01a"}.fa-pied-piper-square,.fa-square-pied-piper{--fa:"\e01e"}.fa-unity{--fa:"\e049"}.fa-dailymotion{--fa:"\e052"}.fa-instagram-square,.fa-square-instagram{--fa:"\e055"}.fa-mixer{--fa:"\e056"}.fa-shopify{--fa:"\e057"}.fa-deezer{--fa:"\e077"}.fa-edge-legacy{--fa:"\e078"}.fa-google-pay{--fa:"\e079"}.fa-rust{--fa:"\e07a"}.fa-tiktok{--fa:"\e07b"}.fa-unsplash{--fa:"\e07c"}.fa-cloudflare{--fa:"\e07d"}.fa-guilded{--fa:"\e07e"}.fa-hive{--fa:"\e07f"}.fa-42-group,.fa-innosoft{--fa:"\e080"}.fa-instalod{--fa:"\e081"}.fa-octopus-deploy{--fa:"\e082"}.fa-perbyte{--fa:"\e083"}.fa-uncharted{--fa:"\e084"}.fa-watchman-monitoring{--fa:"\e087"}.fa-wodu{--fa:"\e088"}.fa-wirsindhandwerk,.fa-wsh{--fa:"\e2d0"}.fa-bots{--fa:"\e340"}.fa-cmplid{--fa:"\e360"}.fa-bilibili{--fa:"\e3d9"}.fa-golang{--fa:"\e40f"}.fa-pix{--fa:"\e43a"}.fa-sitrox{--fa:"\e44a"}.fa-hashnode{--fa:"\e499"}.fa-meta{--fa:"\e49b"}.fa-padlet{--fa:"\e4a0"}.fa-nfc-directional{--fa:"\e530"}.fa-nfc-symbol{--fa:"\e531"}.fa-screenpal{--fa:"\e570"}.fa-space-awesome{--fa:"\e5ac"}.fa-square-font-awesome{--fa:"\e5ad"}.fa-gitlab-square,.fa-square-gitlab{--fa:"\e5ae"}.fa-odysee{--fa:"\e5c6"}.fa-stubber{--fa:"\e5c7"}.fa-debian{--fa:"\e60b"}.fa-shoelace{--fa:"\e60c"}.fa-threads{--fa:"\e618"}.fa-square-threads{--fa:"\e619"}.fa-square-x-twitter{--fa:"\e61a"}.fa-x-twitter{--fa:"\e61b"}.fa-opensuse{--fa:"\e62b"}.fa-letterboxd{--fa:"\e62d"}.fa-square-letterboxd{--fa:"\e62e"}.fa-mintbit{--fa:"\e62f"}.fa-google-scholar{--fa:"\e63b"}.fa-brave{--fa:"\e63c"}.fa-brave-reverse{--fa:"\e63d"}.fa-pixiv{--fa:"\e640"}.fa-upwork{--fa:"\e641"}.fa-webflow{--fa:"\e65c"}.fa-signal-messenger{--fa:"\e663"}.fa-bluesky{--fa:"\e671"}.fa-jxl{--fa:"\e67b"}.fa-square-upwork{--fa:"\e67c"}.fa-web-awesome{--fa:"\e682"}.fa-square-web-awesome{--fa:"\e683"}.fa-square-web-awesome-stroke{--fa:"\e684"}.fa-dart-lang{--fa:"\e693"}.fa-flutter{--fa:"\e694"}.fa-files-pinwheel{--fa:"\e69f"}.fa-css{--fa:"\e6a2"}.fa-square-bluesky{--fa:"\e6a3"}.fa-openai{--fa:"\e7cf"}.fa-square-linkedin{--fa:"\e7d0"}.fa-cash-app{--fa:"\e7d4"}.fa-disqus{--fa:"\e7d5"}.fa-11ty,.fa-eleventy{--fa:"\e7d6"}.fa-kakao-talk{--fa:"\e7d7"}.fa-linktree{--fa:"\e7d8"}.fa-notion{--fa:"\e7d9"}.fa-pandora{--fa:"\e7da"}.fa-pixelfed{--fa:"\e7db"}.fa-tidal{--fa:"\e7dc"}.fa-vsco{--fa:"\e7dd"}.fa-w3c{--fa:"\e7de"}.fa-lumon{--fa:"\e7e2"}.fa-lumon-drop{--fa:"\e7e3"}.fa-square-figma{--fa:"\e7e4"}.fa-tex{--fa:"\e7ff"}.fa-duolingo{--fa:"\e812"}.fa-square-twitter,.fa-twitter-square{--fa:"\f081"}.fa-facebook-square,.fa-square-facebook{--fa:"\f082"}.fa-linkedin{--fa:"\f08c"}.fa-github-square,.fa-square-github{--fa:"\f092"}.fa-twitter{--fa:"\f099"}.fa-facebook{--fa:"\f09a"}.fa-github{--fa:"\f09b"}.fa-pinterest{--fa:"\f0d2"}.fa-pinterest-square,.fa-square-pinterest{--fa:"\f0d3"}.fa-google-plus-square,.fa-square-google-plus{--fa:"\f0d4"}.fa-google-plus-g{--fa:"\f0d5"}.fa-linkedin-in{--fa:"\f0e1"}.fa-github-alt{--fa:"\f113"}.fa-maxcdn{--fa:"\f136"}.fa-html5{--fa:"\f13b"}.fa-css3{--fa:"\f13c"}.fa-btc{--fa:"\f15a"}.fa-youtube{--fa:"\f167"}.fa-xing{--fa:"\f168"}.fa-square-xing,.fa-xing-square{--fa:"\f169"}.fa-dropbox{--fa:"\f16b"}.fa-stack-overflow{--fa:"\f16c"}.fa-instagram{--fa:"\f16d"}.fa-flickr{--fa:"\f16e"}.fa-adn{--fa:"\f170"}.fa-bitbucket{--fa:"\f171"}.fa-tumblr{--fa:"\f173"}.fa-square-tumblr,.fa-tumblr-square{--fa:"\f174"}.fa-apple{--fa:"\f179"}.fa-windows{--fa:"\f17a"}.fa-android{--fa:"\f17b"}.fa-linux{--fa:"\f17c"}.fa-dribbble{--fa:"\f17d"}.fa-skype{--fa:"\f17e"}.fa-foursquare{--fa:"\f180"}.fa-trello{--fa:"\f181"}.fa-gratipay{--fa:"\f184"}.fa-vk{--fa:"\f189"}.fa-weibo{--fa:"\f18a"}.fa-renren{--fa:"\f18b"}.fa-pagelines{--fa:"\f18c"}.fa-stack-exchange{--fa:"\f18d"}.fa-square-vimeo,.fa-vimeo-square{--fa:"\f194"}.fa-slack,.fa-slack-hash{--fa:"\f198"}.fa-wordpress{--fa:"\f19a"}.fa-openid{--fa:"\f19b"}.fa-yahoo{--fa:"\f19e"}.fa-google{--fa:"\f1a0"}.fa-reddit{--fa:"\f1a1"}.fa-reddit-square,.fa-square-reddit{--fa:"\f1a2"}.fa-stumbleupon-circle{--fa:"\f1a3"}.fa-stumbleupon{--fa:"\f1a4"}.fa-delicious{--fa:"\f1a5"}.fa-digg{--fa:"\f1a6"}.fa-pied-piper-pp{--fa:"\f1a7"}.fa-pied-piper-alt{--fa:"\f1a8"}.fa-drupal{--fa:"\f1a9"}.fa-joomla{--fa:"\f1aa"}.fa-behance{--fa:"\f1b4"}.fa-behance-square,.fa-square-behance{--fa:"\f1b5"}.fa-steam{--fa:"\f1b6"}.fa-square-steam,.fa-steam-square{--fa:"\f1b7"}.fa-spotify{--fa:"\f1bc"}.fa-deviantart{--fa:"\f1bd"}.fa-soundcloud{--fa:"\f1be"}.fa-vine{--fa:"\f1ca"}.fa-codepen{--fa:"\f1cb"}.fa-jsfiddle{--fa:"\f1cc"}.fa-rebel{--fa:"\f1d0"}.fa-empire{--fa:"\f1d1"}.fa-git-square,.fa-square-git{--fa:"\f1d2"}.fa-git{--fa:"\f1d3"}.fa-hacker-news{--fa:"\f1d4"}.fa-tencent-weibo{--fa:"\f1d5"}.fa-qq{--fa:"\f1d6"}.fa-weixin{--fa:"\f1d7"}.fa-slideshare{--fa:"\f1e7"}.fa-twitch{--fa:"\f1e8"}.fa-yelp{--fa:"\f1e9"}.fa-paypal{--fa:"\f1ed"}.fa-google-wallet{--fa:"\f1ee"}.fa-cc-visa{--fa:"\f1f0"}.fa-cc-mastercard{--fa:"\f1f1"}.fa-cc-discover{--fa:"\f1f2"}.fa-cc-amex{--fa:"\f1f3"}.fa-cc-paypal{--fa:"\f1f4"}.fa-cc-stripe{--fa:"\f1f5"}.fa-lastfm{--fa:"\f202"}.fa-lastfm-square,.fa-square-lastfm{--fa:"\f203"}.fa-ioxhost{--fa:"\f208"}.fa-angellist{--fa:"\f209"}.fa-buysellads{--fa:"\f20d"}.fa-connectdevelop{--fa:"\f20e"}.fa-dashcube{--fa:"\f210"}.fa-forumbee{--fa:"\f211"}.fa-leanpub{--fa:"\f212"}.fa-sellsy{--fa:"\f213"}.fa-shirtsinbulk{--fa:"\f214"}.fa-simplybuilt{--fa:"\f215"}.fa-skyatlas{--fa:"\f216"}.fa-pinterest-p{--fa:"\f231"}.fa-whatsapp{--fa:"\f232"}.fa-viacoin{--fa:"\f237"}.fa-medium,.fa-medium-m{--fa:"\f23a"}.fa-y-combinator{--fa:"\f23b"}.fa-optin-monster{--fa:"\f23c"}.fa-opencart{--fa:"\f23d"}.fa-expeditedssl{--fa:"\f23e"}.fa-cc-jcb{--fa:"\f24b"}.fa-cc-diners-club{--fa:"\f24c"}.fa-creative-commons{--fa:"\f25e"}.fa-gg{--fa:"\f260"}.fa-gg-circle{--fa:"\f261"}.fa-odnoklassniki{--fa:"\f263"}.fa-odnoklassniki-square,.fa-square-odnoklassniki{--fa:"\f264"}.fa-get-pocket{--fa:"\f265"}.fa-wikipedia-w{--fa:"\f266"}.fa-safari{--fa:"\f267"}.fa-chrome{--fa:"\f268"}.fa-firefox{--fa:"\f269"}.fa-opera{--fa:"\f26a"}.fa-internet-explorer{--fa:"\f26b"}.fa-contao{--fa:"\f26d"}.fa-500px{--fa:"\f26e"}.fa-amazon{--fa:"\f270"}.fa-houzz{--fa:"\f27c"}.fa-vimeo-v{--fa:"\f27d"}.fa-black-tie{--fa:"\f27e"}.fa-fonticons{--fa:"\f280"}.fa-reddit-alien{--fa:"\f281"}.fa-edge{--fa:"\f282"}.fa-codiepie{--fa:"\f284"}.fa-modx{--fa:"\f285"}.fa-fort-awesome{--fa:"\f286"}.fa-usb{--fa:"\f287"}.fa-product-hunt{--fa:"\f288"}.fa-mixcloud{--fa:"\f289"}.fa-scribd{--fa:"\f28a"}.fa-bluetooth{--fa:"\f293"}.fa-bluetooth-b{--fa:"\f294"}.fa-gitlab{--fa:"\f296"}.fa-wpbeginner{--fa:"\f297"}.fa-wpforms{--fa:"\f298"}.fa-envira{--fa:"\f299"}.fa-glide{--fa:"\f2a5"}.fa-glide-g{--fa:"\f2a6"}.fa-viadeo{--fa:"\f2a9"}.fa-square-viadeo,.fa-viadeo-square{--fa:"\f2aa"}.fa-snapchat,.fa-snapchat-ghost{--fa:"\f2ab"}.fa-snapchat-square,.fa-square-snapchat{--fa:"\f2ad"}.fa-pied-piper{--fa:"\f2ae"}.fa-first-order{--fa:"\f2b0"}.fa-yoast{--fa:"\f2b1"}.fa-themeisle{--fa:"\f2b2"}.fa-google-plus{--fa:"\f2b3"}.fa-font-awesome,.fa-font-awesome-flag,.fa-font-awesome-logo-full{--fa:"\f2b4"}.fa-linode{--fa:"\f2b8"}.fa-quora{--fa:"\f2c4"}.fa-free-code-camp{--fa:"\f2c5"}.fa-telegram,.fa-telegram-plane{--fa:"\f2c6"}.fa-bandcamp{--fa:"\f2d5"}.fa-grav{--fa:"\f2d6"}.fa-etsy{--fa:"\f2d7"}.fa-imdb{--fa:"\f2d8"}.fa-ravelry{--fa:"\f2d9"}.fa-sellcast{--fa:"\f2da"}.fa-superpowers{--fa:"\f2dd"}.fa-wpexplorer{--fa:"\f2de"}.fa-meetup{--fa:"\f2e0"}.fa-font-awesome-alt,.fa-square-font-awesome-stroke{--fa:"\f35c"}.fa-accessible-icon{--fa:"\f368"}.fa-accusoft{--fa:"\f369"}.fa-adversal{--fa:"\f36a"}.fa-affiliatetheme{--fa:"\f36b"}.fa-algolia{--fa:"\f36c"}.fa-amilia{--fa:"\f36d"}.fa-angrycreative{--fa:"\f36e"}.fa-app-store{--fa:"\f36f"}.fa-app-store-ios{--fa:"\f370"}.fa-apper{--fa:"\f371"}.fa-asymmetrik{--fa:"\f372"}.fa-audible{--fa:"\f373"}.fa-avianex{--fa:"\f374"}.fa-aws{--fa:"\f375"}.fa-bimobject{--fa:"\f378"}.fa-bitcoin{--fa:"\f379"}.fa-bity{--fa:"\f37a"}.fa-blackberry{--fa:"\f37b"}.fa-blogger{--fa:"\f37c"}.fa-blogger-b{--fa:"\f37d"}.fa-buromobelexperte{--fa:"\f37f"}.fa-centercode{--fa:"\f380"}.fa-cloudscale{--fa:"\f383"}.fa-cloudsmith{--fa:"\f384"}.fa-cloudversify{--fa:"\f385"}.fa-cpanel{--fa:"\f388"}.fa-css3-alt{--fa:"\f38b"}.fa-cuttlefish{--fa:"\f38c"}.fa-d-and-d{--fa:"\f38d"}.fa-deploydog{--fa:"\f38e"}.fa-deskpro{--fa:"\f38f"}.fa-digital-ocean{--fa:"\f391"}.fa-discord{--fa:"\f392"}.fa-discourse{--fa:"\f393"}.fa-dochub{--fa:"\f394"}.fa-docker{--fa:"\f395"}.fa-draft2digital{--fa:"\f396"}.fa-dribbble-square,.fa-square-dribbble{--fa:"\f397"}.fa-dyalog{--fa:"\f399"}.fa-earlybirds{--fa:"\f39a"}.fa-erlang{--fa:"\f39d"}.fa-facebook-f{--fa:"\f39e"}.fa-facebook-messenger{--fa:"\f39f"}.fa-firstdraft{--fa:"\f3a1"}.fa-fonticons-fi{--fa:"\f3a2"}.fa-fort-awesome-alt{--fa:"\f3a3"}.fa-freebsd{--fa:"\f3a4"}.fa-gitkraken{--fa:"\f3a6"}.fa-gofore{--fa:"\f3a7"}.fa-goodreads{--fa:"\f3a8"}.fa-goodreads-g{--fa:"\f3a9"}.fa-google-drive{--fa:"\f3aa"}.fa-google-play{--fa:"\f3ab"}.fa-gripfire{--fa:"\f3ac"}.fa-grunt{--fa:"\f3ad"}.fa-gulp{--fa:"\f3ae"}.fa-hacker-news-square,.fa-square-hacker-news{--fa:"\f3af"}.fa-hire-a-helper{--fa:"\f3b0"}.fa-hotjar{--fa:"\f3b1"}.fa-hubspot{--fa:"\f3b2"}.fa-itunes{--fa:"\f3b4"}.fa-itunes-note{--fa:"\f3b5"}.fa-jenkins{--fa:"\f3b6"}.fa-joget{--fa:"\f3b7"}.fa-js{--fa:"\f3b8"}.fa-js-square,.fa-square-js{--fa:"\f3b9"}.fa-keycdn{--fa:"\f3ba"}.fa-kickstarter,.fa-square-kickstarter{--fa:"\f3bb"}.fa-kickstarter-k{--fa:"\f3bc"}.fa-laravel{--fa:"\f3bd"}.fa-line{--fa:"\f3c0"}.fa-lyft{--fa:"\f3c3"}.fa-magento{--fa:"\f3c4"}.fa-medapps{--fa:"\f3c6"}.fa-medrt{--fa:"\f3c8"}.fa-microsoft{--fa:"\f3ca"}.fa-mix{--fa:"\f3cb"}.fa-mizuni{--fa:"\f3cc"}.fa-monero{--fa:"\f3d0"}.fa-napster{--fa:"\f3d2"}.fa-node-js{--fa:"\f3d3"}.fa-npm{--fa:"\f3d4"}.fa-ns8{--fa:"\f3d5"}.fa-nutritionix{--fa:"\f3d6"}.fa-page4{--fa:"\f3d7"}.fa-palfed{--fa:"\f3d8"}.fa-patreon{--fa:"\f3d9"}.fa-periscope{--fa:"\f3da"}.fa-phabricator{--fa:"\f3db"}.fa-phoenix-framework{--fa:"\f3dc"}.fa-playstation{--fa:"\f3df"}.fa-pushed{--fa:"\f3e1"}.fa-python{--fa:"\f3e2"}.fa-red-river{--fa:"\f3e3"}.fa-rendact,.fa-wpressr{--fa:"\f3e4"}.fa-replyd{--fa:"\f3e6"}.fa-resolving{--fa:"\f3e7"}.fa-rocketchat{--fa:"\f3e8"}.fa-rockrms{--fa:"\f3e9"}.fa-schlix{--fa:"\f3ea"}.fa-searchengin{--fa:"\f3eb"}.fa-servicestack{--fa:"\f3ec"}.fa-sistrix{--fa:"\f3ee"}.fa-speakap{--fa:"\f3f3"}.fa-staylinked{--fa:"\f3f5"}.fa-steam-symbol{--fa:"\f3f6"}.fa-sticker-mule{--fa:"\f3f7"}.fa-studiovinari{--fa:"\f3f8"}.fa-supple{--fa:"\f3f9"}.fa-uber{--fa:"\f402"}.fa-uikit{--fa:"\f403"}.fa-uniregistry{--fa:"\f404"}.fa-untappd{--fa:"\f405"}.fa-ussunnah{--fa:"\f407"}.fa-vaadin{--fa:"\f408"}.fa-viber{--fa:"\f409"}.fa-vimeo{--fa:"\f40a"}.fa-vnv{--fa:"\f40b"}.fa-square-whatsapp,.fa-whatsapp-square{--fa:"\f40c"}.fa-whmcs{--fa:"\f40d"}.fa-wordpress-simple{--fa:"\f411"}.fa-xbox{--fa:"\f412"}.fa-yandex{--fa:"\f413"}.fa-yandex-international{--fa:"\f414"}.fa-apple-pay{--fa:"\f415"}.fa-cc-apple-pay{--fa:"\f416"}.fa-fly{--fa:"\f417"}.fa-node{--fa:"\f419"}.fa-osi{--fa:"\f41a"}.fa-react{--fa:"\f41b"}.fa-autoprefixer{--fa:"\f41c"}.fa-less{--fa:"\f41d"}.fa-sass{--fa:"\f41e"}.fa-vuejs{--fa:"\f41f"}.fa-angular{--fa:"\f420"}.fa-aviato{--fa:"\f421"}.fa-ember{--fa:"\f423"}.fa-gitter{--fa:"\f426"}.fa-hooli{--fa:"\f427"}.fa-strava{--fa:"\f428"}.fa-stripe{--fa:"\f429"}.fa-stripe-s{--fa:"\f42a"}.fa-typo3{--fa:"\f42b"}.fa-amazon-pay{--fa:"\f42c"}.fa-cc-amazon-pay{--fa:"\f42d"}.fa-ethereum{--fa:"\f42e"}.fa-korvue{--fa:"\f42f"}.fa-elementor{--fa:"\f430"}.fa-square-youtube,.fa-youtube-square{--fa:"\f431"}.fa-flipboard{--fa:"\f44d"}.fa-hips{--fa:"\f452"}.fa-php{--fa:"\f457"}.fa-quinscape{--fa:"\f459"}.fa-readme{--fa:"\f4d5"}.fa-java{--fa:"\f4e4"}.fa-pied-piper-hat{--fa:"\f4e5"}.fa-creative-commons-by{--fa:"\f4e7"}.fa-creative-commons-nc{--fa:"\f4e8"}.fa-creative-commons-nc-eu{--fa:"\f4e9"}.fa-creative-commons-nc-jp{--fa:"\f4ea"}.fa-creative-commons-nd{--fa:"\f4eb"}.fa-creative-commons-pd{--fa:"\f4ec"}.fa-creative-commons-pd-alt{--fa:"\f4ed"}.fa-creative-commons-remix{--fa:"\f4ee"}.fa-creative-commons-sa{--fa:"\f4ef"}.fa-creative-commons-sampling{--fa:"\f4f0"}.fa-creative-commons-sampling-plus{--fa:"\f4f1"}.fa-creative-commons-share{--fa:"\f4f2"}.fa-creative-commons-zero{--fa:"\f4f3"}.fa-ebay{--fa:"\f4f4"}.fa-keybase{--fa:"\f4f5"}.fa-mastodon{--fa:"\f4f6"}.fa-r-project{--fa:"\f4f7"}.fa-researchgate{--fa:"\f4f8"}.fa-teamspeak{--fa:"\f4f9"}.fa-first-order-alt{--fa:"\f50a"}.fa-fulcrum{--fa:"\f50b"}.fa-galactic-republic{--fa:"\f50c"}.fa-galactic-senate{--fa:"\f50d"}.fa-jedi-order{--fa:"\f50e"}.fa-mandalorian{--fa:"\f50f"}.fa-old-republic{--fa:"\f510"}.fa-phoenix-squadron{--fa:"\f511"}.fa-sith{--fa:"\f512"}.fa-trade-federation{--fa:"\f513"}.fa-wolf-pack-battalion{--fa:"\f514"}.fa-hornbill{--fa:"\f592"}.fa-mailchimp{--fa:"\f59e"}.fa-megaport{--fa:"\f5a3"}.fa-nimblr{--fa:"\f5a8"}.fa-rev{--fa:"\f5b2"}.fa-shopware{--fa:"\f5b5"}.fa-squarespace{--fa:"\f5be"}.fa-themeco{--fa:"\f5c6"}.fa-weebly{--fa:"\f5cc"}.fa-wix{--fa:"\f5cf"}.fa-ello{--fa:"\f5f1"}.fa-hackerrank{--fa:"\f5f7"}.fa-kaggle{--fa:"\f5fa"}.fa-markdown{--fa:"\f60f"}.fa-neos{--fa:"\f612"}.fa-zhihu{--fa:"\f63f"}.fa-alipay{--fa:"\f642"}.fa-the-red-yeti{--fa:"\f69d"}.fa-critical-role{--fa:"\f6c9"}.fa-d-and-d-beyond{--fa:"\f6ca"}.fa-dev{--fa:"\f6cc"}.fa-fantasy-flight-games{--fa:"\f6dc"}.fa-wizards-of-the-coast{--fa:"\f730"}.fa-think-peaks{--fa:"\f731"}.fa-reacteurope{--fa:"\f75d"}.fa-artstation{--fa:"\f77a"}.fa-atlassian{--fa:"\f77b"}.fa-canadian-maple-leaf{--fa:"\f785"}.fa-centos{--fa:"\f789"}.fa-confluence{--fa:"\f78d"}.fa-dhl{--fa:"\f790"}.fa-diaspora{--fa:"\f791"}.fa-fedex{--fa:"\f797"}.fa-fedora{--fa:"\f798"}.fa-figma{--fa:"\f799"}.fa-intercom{--fa:"\f7af"}.fa-invision{--fa:"\f7b0"}.fa-jira{--fa:"\f7b1"}.fa-mendeley{--fa:"\f7b3"}.fa-raspberry-pi{--fa:"\f7bb"}.fa-redhat{--fa:"\f7bc"}.fa-sketch{--fa:"\f7c6"}.fa-sourcetree{--fa:"\f7d3"}.fa-suse{--fa:"\f7d6"}.fa-ubuntu{--fa:"\f7df"}.fa-ups{--fa:"\f7e0"}.fa-usps{--fa:"\f7e1"}.fa-yarn{--fa:"\f7e3"}.fa-airbnb{--fa:"\f834"}.fa-battle-net{--fa:"\f835"}.fa-bootstrap{--fa:"\f836"}.fa-buffer{--fa:"\f837"}.fa-chromecast{--fa:"\f838"}.fa-evernote{--fa:"\f839"}.fa-itch-io{--fa:"\f83a"}.fa-salesforce{--fa:"\f83b"}.fa-speaker-deck{--fa:"\f83c"}.fa-symfony{--fa:"\f83d"}.fa-waze{--fa:"\f83f"}.fa-yammer{--fa:"\f840"}.fa-git-alt{--fa:"\f841"}.fa-stackpath{--fa:"\f842"}.fa-cotton-bureau{--fa:"\f89e"}.fa-buy-n-large{--fa:"\f8a6"}.fa-mdb{--fa:"\f8ca"}.fa-orcid{--fa:"\f8d2"}.fa-swift{--fa:"\f8e1"}.fa-umbraco{--fa:"\f8e8"}:host,:root{--fa-font-regular:normal 400 1em/1 var(--fa-family-classic)}@font-face{font-family:"Font Awesome 7 Free";font-style:normal;font-weight:400;font-display:block;src:url(/assets/fa-regular-400-BVHPE7da.woff2)}.far{--fa-family:var(--fa-family-classic)}.fa-regular,.far{--fa-style:400}:host,:root{--fa-family-classic:"Font Awesome 7 Free";--fa-font-solid:normal 900 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}@font-face{font-family:"Font Awesome 7 Free";font-style:normal;font-weight:900;font-display:block;src:url(/assets/fa-solid-900-8GirhLYJ.woff2)}.fas{--fa-style:900}.fa-classic,.fas{--fa-family:var(--fa-family-classic)}.fa-solid{--fa-style:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(/assets/fa-brands-400-BfBXV7Mm.woff2) format("woff2")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(/assets/fa-solid-900-8GirhLYJ.woff2) format("woff2")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(/assets/fa-regular-400-BVHPE7da.woff2) format("woff2")}@font-face{font-family:"FontAwesome";font-display:block;src:url(/assets/fa-solid-900-8GirhLYJ.woff2) format("woff2")}@font-face{font-family:"FontAwesome";font-display:block;src:url(/assets/fa-brands-400-BfBXV7Mm.woff2) format("woff2")}@font-face{font-family:"FontAwesome";font-display:block;src:url(/assets/fa-regular-400-BVHPE7da.woff2) format("woff2");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(data:font/woff2;base64,d09GMk9UVE8AAA/IAAkAAAAAIi4AAA9/A4EBAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYCJAQGBmADgRwFiH0AghwHIA22GYUWESMRdnLSigfwXxK0JUN3PWgtIVtGtFABIUcjR8vMKvVNUhctBQIndOh7wFzNSdpf090C0MDGNSSuod3GJyMkmSUKlm72kk6vLpKqU4SDLlGqOoHx7wzNIRzzvZseTSBF/CoWaAkVRa5inol55lqxm5oz/9pr/qq+GXmakr21m0KxnJeWZ3dOoSo0//sTGj5e/r///znN1cDq77IugUrslFAFYg2CIfrG8Y3Q37GCqLAnZVKJvSuQC/x0zjP8v7/fp1rJjZ8tzGQcKS6iBFIAJMtql0EBKwIFJDuugO7Ztucm55fDg6nLQiMNIEFoAX1WesldzzU7W7qlB5C8/++0N/TOuYAMJkEJWxa0H6VUF8my5XljyWqW/HtHCdpC8/dzpf3Zo1xxtyzxz6xshdvbIjqxeb2f7J8c5YBze4Ccu5kUEBWBI0AH7IDAk6uwKytrZI3u+Oomu9N+Ch7edEI2hmbmj9mR4KGCCO1OI0Dr/VoFnpZiOoC03o/+9KGeq7f9lSyoBfSRrC9Amv8NNQXkv9dga9kX4SPg6q20ZH4KKkGH7ZxcnL4NSQJ3bNjDCltkZrMsvFjN7LHIvUfNiVvGzRR5g2liAY8ep1zeXndi8cn0bUAk+Rdo+H2aN3ibf00mnl6cTgSTzGQi2PwMLyybUdSOvMvrfRwevuNCicEtAc7iNqM5uMOiDXd5AXgoUDKe4wSrl3nYrJiJ5dgWy5eZNmGBqPqM7SiyHxMG13JMyioCC01sSbFISoxYYmjOYqngylWrJo0avhAvkN+mBQx+0Q/EuqY/MKvU/6QZOMFPn8YVKyFyLf/LwdGlvyBChm501AWTjv/yEZr7ZH17ZBCTYxHSc7VDmT9AFoyEi6CHBl359As9DQ82B5suxNn3j4gMt+UxWSNNYZZQvW8yZzIvpkfcsB9IM5scuJuxZ+gYJ1yo5FvehXBoyRMNnMS9UkW8OOc0MMSN2jR1ry3AabQk+JogpOfRBxzLQ6FlJ2OAKkDymQgcW9xTi3N58PQJMI1CpuCI5kjHZahelKvRmSv2ue23LAciStmv+qMxQMnoseN2TIh3nYzeu5gDMxPesxbeaVPhgpl1YJmQaT3p1uPa1l1QhEhsavLU+p3RJIxFqOwqyqks0qiMPn+ufnYItSTrkSg46sjY07FeCST6L1G6yVZZA2yuHrPmLfvQd7z6pC2GlriWzHIa3OjGNaElbS9udWlddmD03CQBYiOxu4x5MJj9aty8+8AtN195+WXnHXvMkeNHDepdrGj100fvPXPfPXedUS6QTH6OC8SLjm/RC7INBP1psFtAuh/jut1At7ug28Oumya6dSRdewT9u6fdi8KNPu45gM6I0glL5B4A5FS5OD6rJV07pr01Tbe7DNCfricygjae+C8jaQlwudWMKcHzYSyjgDACa+78r8uoVNCuVt7QVZyQLL8TeXFxjQoILPBnv12E3VdiCtFHfhcuFVlENkpnn2H/SXxVqpIlyc3yF4pgxXblcOUDlbeqTC1Xn9KUaxfCEQ5ZDvsdWhyTHXc4xTiPFe9zSekzvX2uzy5XoflexesHfIjl6zaU7k0eJ7GkJRisvss6IthIXzDKJNgOafeXL1zY+OrZ2RWDrpkmcPqRR0ALgU2f5sPNsN5mzE7tGsX/CsEmx07579/v/0rKfyU/B9xewNKUpWHBHGbSwWLhbS+nLAwOaSF2mpv37S0/A/N7tx/MR+H37AN49NY/GwSdrdlKnwmsNXUd0tTVHOFmclEYIQgaGkBICGSuZ2Zc1ZkgP6RM2kJWRDpVWXSeUXND5gKE1JyQkTqNKOsaR7iRmE+pgsyJlfylH6GUWXsT4uqgTL4XmmnNBvTSIeYa4auJkXz9tYBP6kI9QqqfU+wpBYuGK8AgbUZh6gA5zBkSrotIcz5B9ZUVMbvF5XkimQGmEkJDFtup83hwGaecgpTfOY8wQkjFBzHim294LkTOH5ONcFRwicEpLaxkTBrpwgUgBlRdiBbKSaPvsPwgNe+QUgccBUKDlOTvIscppyB76uemdhAoSqlahohzaq7UyX1ypuqk1WitUALYdpVCZjsbLNPWInJ/Wes1k6pryh+M6SRpjCbelogDZqvZoKqmSIjR31Kygf6f65K5G/LTlgDb0MVco6lFM67rlKt9moYigNgIdq9yZOjHuvIR2PQxkiarNVcVl9zfdHZiykproVioWsEItpndkPRp+9f1iEFZrhiBIGSl9F51vg6hluZQK1vrAmvXWTvJBc0mVVWMsuULNSugE0RQP9YSpt/9U5ZGBkV6UFpG3YtQk8V8RYcxEvldZR5I30VGzICwLSbvPXh/sd8AvSSvFjJZCB+d6PnyuEek88l8lBPR+BJaCYxfwwA0qhk0mcY4Z4w7NSIui2Spk3wgIpgJhpzfTmKALCrJLZCAScME5kqCYdqz+RVLJFffGEwnooYqpsl7EEYSN0SqBE30aFd04GY8/GVnAGNw86+H/zWjfEohq3YYxm0LulET5J7JoTAIGWn0CYlrS9e/DgdlMOlMMM2U/9dKwRHEda8hq2OZM8rY5I00yY9eXn4zGnIsmAASXcciw0TcLGE9Be859qlRjbeNBLjn/fu9kbEK/E0YQQ31G+2zQY3SuUUVjsBLePiL/6+46JcWPTyrzXIohckV6wVMt4jguZ/DT85pkL1XgabxDej/lYMB5gkvnpz879KLsg1b4DuSzocNzAOx8K39A+BeuhzA0bwHxKtUqlvryMsHHRjDoAqCdgrT6/MrNJIl8BAha+So2Z3q4y7bsHc2oWKDc3jqafI8EzgA8xbpBJ8JJKRRDnt7UXS0YwcEKRXGPKiGlDgD3ugGi52DrG2MM8+AO83Woq8P9JT6ox9mlDCwZhyDETO3JmvjwFnCPfnw45a5stJ9j1QK+bzOqv2jqUZBNibfaIdOl1eA1kQ7h2dQI8DTZTUXVFJmzyIlJVwFsTapQBQqjqdr4qXGfoma0Qnna96oFnEPDNrdtcWgvWAvEUqs4GC8mVtbJ8omjqeYiro6oT8pq3ip63X6up32Y4gP1PUX6APTS9osERNRRXR9i/+YulbmAd3XfI0eWF1ubK2AI4NK8ygBll5Oq4JoKJ127LhN21X7NfXV+7k0Rgtlu8hpjgyapeonI0xI1cn6T61Xpq5rpx3VT7g/pSGipIRrGWKB9tY56llBi0myy5NmDZRGrbd4OInkwyiXMhKjtl/T1iC5iId7UOocDRvAnozZYbGHekzqtCExsN/jToMDp2hoAT2/g7ySVayA/KCUxm07sANSKQ+JgVVb7bDjedw2hLw9aOsGPOucwfNDNPQ82R4kBooORoE6uEc368C/4EV6ptNehiCxci9VcrbhBugYGilx8skc9pfwz7f4lcUujBZqGRT7Yj9/GeF9uY9sli0x+jZku4B7V5CtDAsvQE+x4CGiGMrHlBnjZ0bH0PihMmF80fW1oCF2ZNt7v3jHuzgavrvcNTa8/Mf+lA28ePHHhdmlDs8Ijtsw41mQAzvwgOKGD1MfShiSoHyiyJrdYqp0/sF6cC6ZcQcwPs1nKZaFuzYcmZ63tyiDyriD0nlUmMlvEVDQLq09dX5+a/BCmp3giaHXbgvBDWB6GUeYkCJoe0RHFAuTiC7EWEtxIjYMlowP2ID2zjgBYs0FN4eE5IuVNZgWg21O/9fbq/bbBR+RDrc2rLVjxpO+anAx69iHLY8Rwbgn6BgDS4KZvlyRdNypPcT4G0RcEvfduSXZK9vbOhvOqxLHo0L53u3tM2fQ1171UqgFwaN7/iNt0KPwFbvwYwjhFlnWBIKVFEMvvpaVQNC18E19gVmLOadcxghyPsO0e9GzdZqJbAXKAazc/8ObOkWFE3IWDAnZDxLnMwOjzchyp7RASRrhFEiUFFsYUZZGhB5+IW2DBTHDEDOBSjHt/IyKa+I2YgshSBQUvjdFHVFSnRM7MLrKBcRwFxNCXuKIWxkkDZ3+GNSME7+HNFfwO/1sPObe41m+JMcl5i4nO+f7sAWpd3LiiRQKWk4dBljDES8g2BQw2ivsHIW4+jD/wt59GA//0G8vh/oQ5lvznmwzL8LRG9sCdLI+9lzbhO05llkvRHx2KbZmKzhzwqUGwYQo01QBjU9dhD4so8lPnjgxcUjV0SIEMK4oIhJD7FTYlJhAMCAvn9kKjWCzYoSFkOXbiZ9YkeBAyWHrMwq8OGUy2/ExrEh6VZNtBrZRyYayz4FnJlTvuR/zj9Jll0FK/h5zjG4lJQ84Rrz/PlWhF67tuOAAReg8QlviW7BqX0z6dNNNWjHPAf0783geYmU3uu+nMa96e7VTkIwddJvmc7uBmfrcbhKZC0RHpV/nFU6Q48pogAXcnadHcERQnjZYlsKgbAkz/PvinZmQWXZBy19p5MhAQE40OBPxz+fYZgK99OPNnJXHxomMWB7La/SnlBrolWVgu/xaRI7zL8ALVqePUC9iPvuUW3N3XZI6J6uRiMrebvG9YDIbfHGAXDedDHIpyu79Uq4D91aqY3+ABiG8rsVnRg1L5xpsOLVt51LUQTvrEAtUMqzOzqK2T2t2zP772rd/ZY6fUp1uF6ePhpWeIxiqoWyhNsRA69AZrcY5o5zVFHUIBwtfsdxjAkFKhVFxVByV78qjlajtlsg1clS7RI9XJ/f2gjjXdB/xy3u+B7Z1szrwPh1m8nMticlqfZJWvPGLmjcJBohzT5z1F63AWaocmFtuAY1ePeBY30R4kfL7aE9+GetD5Hvj8eGMZ3up6qQxKgieGx69dhLxDSY+nQ5FI3LRfrLhMDFvEwF2uOoME+/Gh0MqYxkm4s05u6D4DyLBRemu4kMtB6Nv/NOFUZPitzFD8qL8o0r+kYrPnnsY0vWZd5GEzsCREC+Wz3APkfzeqsAp0tZw0lLrhuy2DNy1E1VNM1LqdhIO45OPIwT3rftapv3Bq7mdNHFSgnKIkN8flMKWHNJF9U1BMQglWyx3EZ7e5f02oBD3RnnUPJn1p0wir+pGFraC2kyNDOKF8tvhNtQ4Hcy0KjTgZz2eIU55xre6wlnEltXkEBDbif0x/5SQnkBBsVWmb3r49ic42aAZm9yFY1aRg7n+S55ntbIbUFoODVCE879nRYAuMN+ACxenLXW8IjGFgtIdIwdl+hm8IjDZChcfQWQE4njeBgZtMFXgB6tKKFfpy23VFRCE125CitD/JeFiLDnXDHDSEnA6F9x0fPn4hNuPX1WQu8Z38LPLmCxI8nJVmHouX1lTh3BMEinPhg07NI3cNPSeEiWEBfG4rV6SAQMAAAA=) format("woff2");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-aria-container {
	position: absolute; /* try to hide from window but not from screen readers */
	left:-999em;
}/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* -------------------- IE10 remove auto clear button -------------------- */

::-ms-clear {
	display: none;
}

/* All widgets */
/* I am not a big fan of this rule */
.monaco-editor .editor-widget input {
	color: inherit;
}

/* -------------------- Editor -------------------- */

.monaco-editor {
	position: relative;
	overflow: visible;
	-webkit-text-size-adjust: 100%;
	color: var(--vscode-editor-foreground);
	background-color: var(--vscode-editor-background);
	overflow-wrap: initial;
}
.monaco-editor-background {
	background-color: var(--vscode-editor-background);
}
.monaco-editor .rangeHighlight {
	background-color: var(--vscode-editor-rangeHighlightBackground);
	box-sizing: border-box;
	border: 1px solid var(--vscode-editor-rangeHighlightBorder);
}
.monaco-editor.hc-black .rangeHighlight, .monaco-editor.hc-light .rangeHighlight {
	border-style: dotted;
}
.monaco-editor .symbolHighlight {
	background-color: var(--vscode-editor-symbolHighlightBackground);
	box-sizing: border-box;
	border: 1px solid var(--vscode-editor-symbolHighlightBorder);
}
.monaco-editor.hc-black .symbolHighlight, .monaco-editor.hc-light .symbolHighlight {
	border-style: dotted;
}

.monaco-editor .editorCanvas {
	position: absolute;
	width: 100%;
	height: 100%;
	z-index: 0;
	pointer-events: none;
}

/* -------------------- Misc -------------------- */

.monaco-editor .overflow-guard {
	position: relative;
	overflow: hidden;
}

.monaco-editor .view-overlays {
	position: absolute;
	top: 0;
}

.monaco-editor .view-overlays > div, .monaco-editor .margin-view-overlays > div {
	position: absolute;
	width: 100%;
}

/*
.monaco-editor .auto-closed-character {
	opacity: 0.3;
}
*/


.monaco-editor .squiggly-error {
	border-bottom: 4px double var(--vscode-editorError-border);
}
.monaco-editor .squiggly-error::before {
	display: block;
	content: '';
	width: 100%;
	height: 100%;
	background: var(--vscode-editorError-background);
}
.monaco-editor .squiggly-warning {
	border-bottom: 4px double var(--vscode-editorWarning-border);
}
.monaco-editor .squiggly-warning::before {
	display: block;
	content: '';
	width: 100%;
	height: 100%;
	background: var(--vscode-editorWarning-background);
}
.monaco-editor .squiggly-info {
	border-bottom: 4px double var(--vscode-editorInfo-border);
}
.monaco-editor .squiggly-info::before {
	display: block;
	content: '';
	width: 100%;
	height: 100%;
	background: var(--vscode-editorInfo-background);
}
.monaco-editor .squiggly-hint {
	border-bottom: 2px dotted var(--vscode-editorHint-border);
}
.monaco-editor.showUnused .squiggly-unnecessary {
	border-bottom: 2px dashed var(--vscode-editorUnnecessaryCode-border);
}
.monaco-editor.showDeprecated .squiggly-inline-deprecated {
	text-decoration: line-through;
	text-decoration-color: var(--vscode-editor-foreground, inherit);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* Arrows */
.monaco-scrollable-element > .scrollbar > .scra {
	cursor: pointer;
	font-size: 11px !important;
}

.monaco-scrollable-element > .visible {
	opacity: 1;

	/* Background rule added for IE9 - to allow clicks on dom node */
	background:rgba(0,0,0,0);

	transition: opacity 100ms linear;
	/* In front of peek view */
	z-index: 11;
}
.monaco-scrollable-element > .invisible {
	opacity: 0;
	pointer-events: none;
}
.monaco-scrollable-element > .invisible.fade {
	transition: opacity 800ms linear;
}

/* Scrollable Content Inset Shadow */
.monaco-scrollable-element > .shadow {
	position: absolute;
	display: none;
}
.monaco-scrollable-element > .shadow.top {
	display: block;
	top: 0;
	left: 3px;
	height: 3px;
	width: 100%;
	box-shadow: var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;
}
.monaco-scrollable-element > .shadow.left {
	display: block;
	top: 3px;
	left: 0;
	height: 100%;
	width: 3px;
	box-shadow: var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset;
}
.monaco-scrollable-element > .shadow.top-left-corner {
	display: block;
	top: 0;
	left: 0;
	height: 3px;
	width: 3px;
}
.monaco-scrollable-element > .shadow.top.left {
	box-shadow: var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset;
}

.monaco-scrollable-element > .scrollbar {
	background: var(--vscode-scrollbar-background);
}

.monaco-scrollable-element > .scrollbar > .slider {
	background: var(--vscode-scrollbarSlider-background);
}

.monaco-scrollable-element > .scrollbar > .slider:hover {
	background: var(--vscode-scrollbarSlider-hoverBackground);
}

.monaco-scrollable-element > .scrollbar > .slider.active {
	background: var(--vscode-scrollbarSlider-activeBackground);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .blockDecorations-container {
	position: absolute;
	top: 0;
	pointer-events: none;
}

.monaco-editor .blockDecorations-block {
	position: absolute;
	box-sizing: border-box;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .view-overlays .current-line {
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	box-sizing: border-box;
	height: 100%;
}

.monaco-editor .margin-view-overlays .current-line {
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	box-sizing: border-box;
	height: 100%;
}

.monaco-editor
	.margin-view-overlays
	.current-line.current-line-margin.current-line-margin-both {
	border-right: 0;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/*
	Keeping name short for faster parsing.
	cdr = core decorations rendering (div)
*/
.monaco-editor .lines-content .cdr {
	position: absolute;
	height: 100%;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .glyph-margin {
	position: absolute;
	top: 0;
}

/*
	Keeping name short for faster parsing.
	cgmr = core glyph margin rendering (div)
*/
.monaco-editor .glyph-margin-widgets .cgmr {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
}

/*
	Ensure spinning icons are pixel-perfectly centered and avoid wobble.
	This is only applied to icons that spin to avoid unnecessary
	GPU layers and blurry subpixel AA.
*/
.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin::before  {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .lines-content .core-guide {
	position: absolute;
	box-sizing: border-box;
	height: 100%;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .margin-view-overlays .line-numbers {
	bottom: 0;
	font-variant-numeric: tabular-nums;
	position: absolute;
	text-align: right;
	display: inline-block;
	vertical-align: middle;
	box-sizing: border-box;
	cursor: default;
}

.monaco-editor .relative-current-line-number {
	text-align: left;
	display: inline-block;
	width: 100%;
}

.monaco-editor .margin-view-overlays .line-numbers.lh-odd {
	margin-top: 1px;
}

.monaco-editor .line-numbers {
	color: var(--vscode-editorLineNumber-foreground);
}

.monaco-editor .line-numbers.active-line-number {
	color: var(--vscode-editorLineNumber-activeForeground);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-mouse-cursor-text {
	cursor: text;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* Uncomment to see lines flashing when they're painted */
/*.monaco-editor .view-lines > .view-line {
	background-color: none;
	animation-name: flash-background;
	animation-duration: 800ms;
}
@keyframes flash-background {
	0%   { background-color: lightgreen; }
	100% { background-color: none }
}*/

.mtkcontrol {
	color: rgb(255, 255, 255) !important;
	background: rgb(150, 0, 0) !important;
}

.mtkoverflow {
	background-color: var(--vscode-button-background, var(--vscode-editor-background));
	color: var(--vscode-button-foreground, var(--vscode-editor-foreground));
	border-width: 1px;
	border-style: solid;
	border-color: var(--vscode-contrastBorder);
	border-radius: 2px;
	padding: 4px;
	cursor: pointer;
}
.mtkoverflow:hover {
	background-color: var(--vscode-button-hoverBackground);
}

.monaco-editor.no-user-select .lines-content,
.monaco-editor.no-user-select .view-line,
.monaco-editor.no-user-select .view-lines {
	user-select: none;
	-webkit-user-select: none;
}
/* Use user-select: text for lookup feature on macOS */
/* https://github.com/microsoft/vscode/issues/85632 */
.monaco-editor.mac .lines-content:hover,
.monaco-editor.mac .view-line:hover,
.monaco-editor.mac .view-lines:hover {
	user-select: text;
	-webkit-user-select: text;
	-ms-user-select: text;
}

.monaco-editor.enable-user-select {
	user-select: initial;
	-webkit-user-select: initial;
}

.monaco-editor .view-lines {
	white-space: nowrap;
}

.monaco-editor .view-line {
	box-sizing: border-box;
	position: absolute;
	width: 100%;
}

/* There are view-lines in view-zones. We have to make sure this rule does not apply to them, as they don't set a line height */
.monaco-editor .lines-content > .view-lines > .view-line > span {
	top: 0;
	bottom: 0;
	position: absolute;
}

.monaco-editor .mtkw {
	color: var(--vscode-editorWhitespace-foreground) !important;
}

.monaco-editor .mtkz {
	display: inline-block;
	color: var(--vscode-editorWhitespace-foreground) !important;
}

/* TODO@tokenization bootstrap fix */
/*.monaco-editor .view-line > span > span {
	float: none;
	min-height: inherit;
	margin-left: inherit;
}*/
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
.monaco-editor .lines-decorations {
	position: absolute;
	top: 0;
	background: white;
}

/*
	Keeping name short for faster parsing.
	cldr = core lines decorations rendering (div)
*/
.monaco-editor .margin-view-overlays .cldr {
	position: absolute;
	height: 100%;
}/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .margin {
	background-color: var(--vscode-editorGutter-background);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/*
	Keeping name short for faster parsing.
	cmdr = core margin decorations rendering (div)
*/
.monaco-editor .margin-view-overlays .cmdr {
	position: absolute;
	left: 0;
	width: 100%;
	height: 100%;
}/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* START cover the case that slider is visible on mouseover */
.monaco-editor .minimap.slider-mouseover .minimap-slider {
	opacity: 0;
	transition: opacity 100ms linear;
}
.monaco-editor .minimap.slider-mouseover:hover .minimap-slider {
	opacity: 1;
}
.monaco-editor .minimap.slider-mouseover .minimap-slider.active {
	opacity: 1;
}
/* END cover the case that slider is visible on mouseover */
.monaco-editor .minimap-slider .minimap-slider-horizontal {
	background: var(--vscode-minimapSlider-background);
}
.monaco-editor .minimap-slider:hover .minimap-slider-horizontal {
	background: var(--vscode-minimapSlider-hoverBackground);
}
.monaco-editor .minimap-slider.active .minimap-slider-horizontal {
	background: var(--vscode-minimapSlider-activeBackground);
}
.monaco-editor .minimap-shadow-visible {
	box-shadow: var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset;
}
.monaco-editor .minimap-shadow-hidden {
	position: absolute;
	width: 0;
}
.monaco-editor .minimap-shadow-visible {
	position: absolute;
	left: -6px;
	width: 6px;
	pointer-events: none;
}
.monaco-editor.no-minimap-shadow .minimap-shadow-visible {
	position: absolute;
	left: -1px;
	width: 1px;
}

/* 0.5s fade in/out for the minimap */
.minimap.minimap-autohide-mouseover,
.minimap.minimap-autohide-scroll {
	opacity: 0;
	transition: opacity 0.5s;
}
.minimap.minimap-autohide-scroll{
	pointer-events: none;
}
.minimap.minimap-autohide-mouseover:hover,
.minimap.minimap-autohide-scroll.active {
	opacity: 1;
	pointer-events: auto;
}

.monaco-editor .minimap {
	z-index: 5;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
.monaco-editor .overlayWidgets {
	position: absolute;
	top: 0;
	left:0;
}/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .view-ruler {
	position: absolute;
	top: 0;
	box-shadow: 1px 0 0 0 var(--vscode-editorRuler-foreground) inset;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .scroll-decoration {
	position: absolute;
	top: 0;
	left: 0;
	height: 6px;
	box-shadow: var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/*
	Keeping name short for faster parsing.
	cslr = core selections layer rendering (div)
*/
.monaco-editor .lines-content .cslr {
	position: absolute;
}

.monaco-editor .focused .selected-text {
	background-color: var(--vscode-editor-selectionBackground);
}

.monaco-editor .selected-text {
	background-color: var(--vscode-editor-inactiveSelectionBackground);
}

.monaco-editor			.top-left-radius		{ border-top-left-radius: 3px; }
.monaco-editor			.bottom-left-radius		{ border-bottom-left-radius: 3px; }
.monaco-editor			.top-right-radius		{ border-top-right-radius: 3px; }
.monaco-editor			.bottom-right-radius	{ border-bottom-right-radius: 3px; }

.monaco-editor.hc-black .top-left-radius		{ border-top-left-radius: 0; }
.monaco-editor.hc-black .bottom-left-radius		{ border-bottom-left-radius: 0; }
.monaco-editor.hc-black .top-right-radius		{ border-top-right-radius: 0; }
.monaco-editor.hc-black .bottom-right-radius	{ border-bottom-right-radius: 0; }

.monaco-editor.hc-light .top-left-radius		{ border-top-left-radius: 0; }
.monaco-editor.hc-light .bottom-left-radius		{ border-bottom-left-radius: 0; }
.monaco-editor.hc-light .top-right-radius		{ border-top-right-radius: 0; }
.monaco-editor.hc-light .bottom-right-radius	{ border-bottom-right-radius: 0; }
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
.monaco-editor .cursors-layer {
	position: absolute;
	top: 0;
}

.monaco-editor .cursors-layer > .cursor {
	position: absolute;
	overflow: hidden;
	box-sizing: border-box;
}

/* -- smooth-caret-animation -- */
.monaco-editor .cursors-layer.cursor-smooth-caret-animation > .cursor {
	transition: all 80ms;
}

/* -- block-outline-style -- */
.monaco-editor .cursors-layer.cursor-block-outline-style > .cursor {
	background: transparent !important;
	border-style: solid;
	border-width: 1px;
}

/* -- underline-style -- */
.monaco-editor .cursors-layer.cursor-underline-style > .cursor {
	border-bottom-width: 2px;
	border-bottom-style: solid;
	background: transparent !important;
}

/* -- underline-thin-style -- */
.monaco-editor .cursors-layer.cursor-underline-thin-style > .cursor {
	border-bottom-width: 1px;
	border-bottom-style: solid;
	background: transparent !important;
}

@keyframes monaco-cursor-smooth {
	0%,
	20% {
		opacity: 1;
	}
	60%,
	100% {
		opacity: 0;
	}
}

@keyframes monaco-cursor-phase {
	0%,
	20% {
		opacity: 1;
	}
	90%,
	100% {
		opacity: 0;
	}
}

@keyframes monaco-cursor-expand {
	0%,
	20% {
		transform: scaleY(1);
	}
	80%,
	100% {
		transform: scaleY(0);
	}
}

.cursor-smooth {
	animation: monaco-cursor-smooth 0.5s ease-in-out 0s 20 alternate;
}

.cursor-phase {
	animation: monaco-cursor-phase 0.5s ease-in-out 0s 20 alternate;
}

.cursor-expand > .cursor {
	animation: monaco-cursor-expand 0.5s ease-in-out 0s 20 alternate;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .mwh {
	position: absolute;
	color: var(--vscode-editorWhitespace-foreground) !important;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .monaco-decoration-css-rule-extractor {
	visibility: hidden;
	pointer-events: none;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .inputarea {
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
	position: absolute;
	outline: none !important;
	resize: none;
	border: none;
	overflow: hidden;
	color: transparent;
	background-color: transparent;
	z-index: -10;
}
/*.monaco-editor .inputarea {
	position: fixed !important;
	width: 800px !important;
	height: 500px !important;
	top: initial !important;
	left: initial !important;
	bottom: 0 !important;
	right: 0 !important;
	color: black !important;
	background: white !important;
	line-height: 15px !important;
	font-size: 14px !important;
	z-index: 10 !important;
}*/
.monaco-editor .inputarea.ime-input {
	z-index: 10;
	caret-color: var(--vscode-editorCursor-foreground);
	color: var(--vscode-editor-foreground);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .native-edit-context {
	margin: 0;
	padding: 0;
	position: absolute;
	overflow-y: scroll;
	scrollbar-width: none;
	z-index: -10;
	white-space: pre-wrap;
}

.monaco-editor .ime-text-area {
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
	position: absolute;
	outline: none !important;
	resize: none;
	border: none;
	overflow: hidden;
	color: transparent;
	background-color: transparent;
	z-index: -10;
}

.monaco-editor .edit-context-composition-none {
	background-color: transparent;
	border-bottom: none;
}

.monaco-editor :not(.hc-black, .hc-light) .edit-context-composition-secondary {
	border-bottom: 1px solid var(--vscode-editor-compositionBorder);
}

.monaco-editor :not(.hc-black, .hc-light) .edit-context-composition-primary {
	border-bottom: 2px solid var(--vscode-editor-compositionBorder);
}

.monaco-editor :is(.hc-black, .hc-light) .edit-context-composition-secondary {
	border: 1px solid var(--vscode-editor-compositionBorder);
}

.monaco-editor :is(.hc-black, .hc-light) .edit-context-composition-primary {
	border: 2px solid var(--vscode-editor-compositionBorder);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .margin-view-overlays .gpu-mark {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	display: inline-block;
	border-left: solid 2px var(--vscode-editorWarning-foreground);
	opacity: 0.2;
	transition: background-color 0.1s linear;
}

.monaco-editor .margin-view-overlays .gpu-mark:hover {
	background-color: var(--vscode-editorWarning-foreground)
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-select-box {
	width: 100%;
	cursor: pointer;
	border-radius: 2px;
}

.monaco-select-box-dropdown-container {
	font-size: 13px;
	font-weight: normal;
	text-transform: none;
}

/** Actions */

.monaco-action-bar .action-item.select-container {
	cursor: default;
}

.monaco-action-bar .action-item .monaco-select-box {
	cursor: pointer;
	min-width: 100px;
	min-height: 18px;
	padding: 2px 23px 2px 8px;
}

.mac .monaco-action-bar .action-item .monaco-select-box {
	font-size: 11px;
	border-radius: 3px;
	min-height: 24px;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-list {
	position: relative;
	height: 100%;
	width: 100%;
	white-space: nowrap;
}

.monaco-list.mouse-support {
	user-select: none;
	-webkit-user-select: none;
}

.monaco-list > .monaco-scrollable-element {
	height: 100%;
}

.monaco-list-rows {
	position: relative;
	width: 100%;
	height: 100%;
}

.monaco-list.horizontal-scrolling .monaco-list-rows {
	width: auto;
	min-width: 100%;
}

.monaco-list-row {
	position: absolute;
	box-sizing: border-box;
	overflow: hidden;
	width: 100%;
}

.monaco-list.mouse-support .monaco-list-row {
	cursor: pointer;
	touch-action: none;
}

/* Make sure the scrollbar renders above overlays (sticky scroll) */
.monaco-list .monaco-scrollable-element > .scrollbar.vertical,
.monaco-pane-view > .monaco-split-view2.vertical > .monaco-scrollable-element > .scrollbar.vertical {
	z-index: 14;
}

/* for OS X ballistic scrolling */
.monaco-list-row.scrolling {
	display: none !important;
}

/* Focus */
.monaco-list.element-focused,
.monaco-list.selection-single,
.monaco-list.selection-multiple {
	outline: 0 !important;
}

/* Filter */

.monaco-list-type-filter-message {
	position: absolute;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	padding: 40px 1em 1em 1em;
	text-align: center;
	white-space: normal;
	opacity: 0.7;
	pointer-events: none;
}

.monaco-list-type-filter-message:empty {
	display: none;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-drag-image {
	display: inline-block;
	padding: 1px 7px;
	border-radius: 10px;
	font-size: 12px;
	position: absolute;
	z-index: 1000;

	/* Default styles */
	background-color: var(--vscode-list-activeSelectionBackground);
	color: var(--vscode-list-activeSelectionForeground);
	outline: 1px solid var(--vscode-list-focusOutline);
	outline-offset: -1px;

	/*
	 * Browsers apply an effect to the drag image when the div becomes too
	 * large which makes them unreadable. Use max width so it does not happen
	 */
	max-width: 120px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* Use custom CSS vars to expose padding into parent select for padding calculation */
.monaco-select-box-dropdown-padding {
	--dropdown-padding-top: 1px;
	--dropdown-padding-bottom: 1px;
}

.hc-black .monaco-select-box-dropdown-padding,
.hc-light .monaco-select-box-dropdown-padding {
	--dropdown-padding-top: 3px;
	--dropdown-padding-bottom: 4px;
}

.monaco-select-box-dropdown-container {
	display: none;
	box-sizing:	border-box;
}

.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown * {
	margin: 0;
}

.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown a:focus {
	outline: 1px solid -webkit-focus-ring-color;
	outline-offset: -1px;
}

.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown code {
	line-height: 15px; /** For some reason, this is needed, otherwise <code> will take up 20px height */
	font-family: var(--monaco-monospace-font);
}


.monaco-select-box-dropdown-container.visible {
	display: flex;
	flex-direction: column;
	text-align: left;
	width: 1px;
	overflow: hidden;
	border-bottom-left-radius: 3px;
	border-bottom-right-radius: 3px;
}

.monaco-select-box-dropdown-container > .select-box-dropdown-list-container {
	flex: 0 0 auto;
	align-self: flex-start;
	padding-top: var(--dropdown-padding-top);
	padding-bottom: var(--dropdown-padding-bottom);
	padding-left: 1px;
	padding-right: 1px;
	width: 100%;
	overflow: hidden;
	box-sizing:	border-box;
}

.monaco-select-box-dropdown-container > .select-box-details-pane {
	padding: 5px;
}

.hc-black .monaco-select-box-dropdown-container > .select-box-dropdown-list-container {
	padding-top: var(--dropdown-padding-top);
	padding-bottom: var(--dropdown-padding-bottom);
}

.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row {
	cursor: pointer;
}

.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-text {
	text-overflow: ellipsis;
	overflow: hidden;
	padding-left: 3.5px;
	white-space: nowrap;
	float: left;
}

.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-detail {
	text-overflow: ellipsis;
	overflow: hidden;
	padding-left: 3.5px;
	white-space: nowrap;
	float: left;
	opacity: 0.7;
}

.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-decorator-right {
	text-overflow: ellipsis;
	overflow: hidden;
	padding-right: 10px;
	white-space: nowrap;
	float: right;
}


/* Accepted CSS hiding technique for accessibility reader text  */
/* https://webaim.org/techniques/css/invisiblecontent/ */

.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .visually-hidden {
		position: absolute;
		left: -10000px;
		top: auto;
		width: 1px;
		height: 1px;
		overflow: hidden;
}

.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control {
	flex: 1 1 auto;
	align-self: flex-start;
	opacity: 0;
}

.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control > .width-control-div {
	overflow: hidden;
	max-height: 0px;
}

.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control > .width-control-div > .option-text-width-control {
	padding-left: 4px;
	padding-right: 8px;
	white-space: nowrap;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-action-bar {
	white-space: nowrap;
	height: 100%;
}

.monaco-action-bar .actions-container {
	display: flex;
	margin: 0 auto;
	padding: 0;
	height: 100%;
	width: 100%;
	align-items: center;
}

.monaco-action-bar.vertical .actions-container {
	display: inline-block;
}

.monaco-action-bar .action-item {
	display: block;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	position: relative;  /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */
}

.monaco-action-bar .action-item.disabled {
	cursor: default;
}

.monaco-action-bar .action-item .icon,
.monaco-action-bar .action-item .codicon {
	display: block;
}

.monaco-action-bar .action-item .codicon {
	display: flex;
	align-items: center;
	width: 16px;
	height: 16px;
}

.monaco-action-bar .action-label {
	display: flex;
	font-size: 11px;
	padding: 3px;
	border-radius: 5px;
}

.monaco-action-bar .action-item.disabled .action-label:not(.icon) ,
.monaco-action-bar .action-item.disabled .action-label:not(.icon)::before,
.monaco-action-bar .action-item.disabled .action-label:not(.icon):hover {
	color: var(--vscode-disabledForeground);
}

/* Unable to change color of SVGs, hence opacity is used */
.monaco-action-bar .action-item.disabled .action-label.icon ,
.monaco-action-bar .action-item.disabled .action-label.icon::before,
.monaco-action-bar .action-item.disabled .action-label.icon:hover {
	opacity: 0.6;
}

/* Vertical actions */

.monaco-action-bar.vertical {
	text-align: left;
}

.monaco-action-bar.vertical .action-item {
	display: block;
}

.monaco-action-bar.vertical .action-label.separator {
	display: block;
	border-bottom: 1px solid var(--vscode-disabledForeground);
	padding-top: 1px;
	margin-left: .8em;
	margin-right: .8em;
}

.monaco-action-bar .action-item .action-label.separator {
	width: 1px;
	height: 16px;
	margin: 5px 4px !important;
	cursor: default;
	min-width: 1px;
	padding: 0;
	background-color: var(--vscode-disabledForeground);
}

.secondary-actions .monaco-action-bar .action-label {
	margin-left: 6px;
}

/* Action Items */
.monaco-action-bar .action-item.select-container {
	overflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */
	flex: 1;
	max-width: 170px;
	min-width: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 10px;
}

.monaco-action-bar .action-item.action-dropdown-item {
	display: flex;
}

.monaco-action-bar .action-item.action-dropdown-item > .action-dropdown-item-separator {
	display: flex;
	align-items: center;
	cursor: default;
}

.monaco-action-bar .action-item.action-dropdown-item > .action-dropdown-item-separator > div {
	width: 1px;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-diff-editor .diff-review {
	position: absolute;

}

.monaco-component.diff-review {
	user-select: none;
	-webkit-user-select: none;
	z-index: 99;


	.diff-review-line-number {
		text-align: right;
		display: inline-block;
		color: var(--vscode-editorLineNumber-foreground);
	}

	.diff-review-summary {
		padding-left: 10px;
	}

	.diff-review-shadow {
		position: absolute;
		box-shadow: var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset;
	}

	.diff-review-row {
		white-space: pre;
	}

	.diff-review-table {
		display: table;
		min-width: 100%;
	}

	.diff-review-row {
		display: table-row;
		width: 100%;
	}

	.diff-review-spacer {
		display: inline-block;
		width: 10px;
		vertical-align: middle;
	}

	.diff-review-spacer > .codicon {
		font-size: 9px !important;
	}

	.diff-review-actions {
		display: inline-block;
		position: absolute;
		right: 10px;
		top: 2px;
		z-index: 100;
	}

	.diff-review-actions .action-label {
		width: 16px;
		height: 16px;
		margin: 2px 0;
	}

	.revertButton {
		cursor: pointer;
	}

	.action-label {
		background: var(--vscode-editorActionList-background);
	}
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

:root {
	--vscode-sash-size: 4px;
	--vscode-sash-hover-size: 4px;
}

.monaco-sash {
	position: absolute;
	z-index: 35;
	touch-action: none;
}

.monaco-sash.disabled {
	pointer-events: none;
}

.monaco-sash.mac.vertical {
	cursor: col-resize;
}

.monaco-sash.vertical.minimum {
	cursor: e-resize;
}

.monaco-sash.vertical.maximum {
	cursor: w-resize;
}

.monaco-sash.mac.horizontal {
	cursor: row-resize;
}

.monaco-sash.horizontal.minimum {
	cursor: s-resize;
}

.monaco-sash.horizontal.maximum {
	cursor: n-resize;
}

.monaco-sash.disabled {
	cursor: default !important;
	pointer-events: none !important;
}

.monaco-sash.vertical {
	cursor: ew-resize;
	top: 0;
	width: var(--vscode-sash-size);
	height: 100%;
}

.monaco-sash.horizontal {
	cursor: ns-resize;
	left: 0;
	width: 100%;
	height: var(--vscode-sash-size);
}

.monaco-sash:not(.disabled) > .orthogonal-drag-handle {
	content: " ";
	height: calc(var(--vscode-sash-size) * 2);
	width: calc(var(--vscode-sash-size) * 2);
	z-index: 100;
	display: block;
	cursor: all-scroll;
	position: absolute;
}

.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)
	> .orthogonal-drag-handle.start,
.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)
	> .orthogonal-drag-handle.end {
	cursor: nwse-resize;
}

.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)
	> .orthogonal-drag-handle.end,
.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)
	> .orthogonal-drag-handle.start {
	cursor: nesw-resize;
}

.monaco-sash.vertical > .orthogonal-drag-handle.start {
	left: calc(var(--vscode-sash-size) * -0.5);
	top: calc(var(--vscode-sash-size) * -1);
}
.monaco-sash.vertical > .orthogonal-drag-handle.end {
	left: calc(var(--vscode-sash-size) * -0.5);
	bottom: calc(var(--vscode-sash-size) * -1);
}
.monaco-sash.horizontal > .orthogonal-drag-handle.start {
	top: calc(var(--vscode-sash-size) * -0.5);
	left: calc(var(--vscode-sash-size) * -1);
}
.monaco-sash.horizontal > .orthogonal-drag-handle.end {
	top: calc(var(--vscode-sash-size) * -0.5);
	right: calc(var(--vscode-sash-size) * -1);
}

.monaco-sash:before {
	content: '';
	pointer-events: none;
	position: absolute;
	width: 100%;
	height: 100%;
	background: transparent;
}

.monaco-enable-motion .monaco-sash:before {
	transition: background-color 0.1s ease-out;
}

.monaco-sash.hover:before,
.monaco-sash.active:before {
	background: var(--vscode-sash-hoverBorder);
}

.monaco-sash.vertical:before {
	width: var(--vscode-sash-hover-size);
	left: calc(50% - (var(--vscode-sash-hover-size) / 2));
}

.monaco-sash.horizontal:before {
	height: var(--vscode-sash-hover-size);
	top: calc(50% - (var(--vscode-sash-hover-size) / 2));
}

.pointer-events-disabled {
	pointer-events: none !important;
}

/** Debug **/

.monaco-sash.debug {
	background: cyan;
}

.monaco-sash.debug.disabled {
	background: rgba(0, 255, 255, 0.2);
}

.monaco-sash.debug:not(.disabled) > .orthogonal-drag-handle {
	background: red;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-dropdown {
	height: 100%;
	padding: 0;
}

.monaco-dropdown > .dropdown-label {
	cursor: pointer;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.monaco-dropdown > .dropdown-label > .action-label.disabled {
	cursor: default;
}

.monaco-dropdown-with-primary {
	display: flex !important;
	flex-direction: row;
	border-radius: 5px;
}

.monaco-dropdown-with-primary > .action-container > .action-label {
	margin-right: 0;
}

.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*='codicon-'] {
	font-size: 12px;
	padding-left: 0px;
	padding-right: 0px;
	line-height: 16px;
	margin-left: -3px;
}

.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label {
	display: block;
	background-size: 16px;
	background-position: center center;
	background-repeat: no-repeat;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-toolbar {
	height: 100%;
}

.monaco-toolbar .toolbar-toggle-more {
	display: inline-block;
	padding: 0;
}

.monaco-toolbar.responsive {
	.monaco-action-bar > .actions-container > .action-item {
		flex-shrink: 1;
		min-width: 20px;
	}
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-action-bar .action-item.menu-entry .action-label.icon {
	width: 16px;
	height: 16px;
	background-repeat: no-repeat;
	background-position: 50%;
	background-size: 16px;
}

.monaco-action-bar .action-item.menu-entry.text-only .action-label {
	color: var(--vscode-descriptionForeground);
	overflow: hidden;
	border-radius: 2px;
}

.monaco-action-bar .action-item.menu-entry.text-only.use-comma:not(:last-of-type) .action-label::after {
	content: ', ';
}

.monaco-action-bar .action-item.menu-entry.text-only + .action-item:not(.text-only) > .monaco-dropdown .action-label {
	color: var(--vscode-descriptionForeground);
}

.monaco-dropdown-with-default {
	display: flex !important;
	flex-direction: row;
	border-radius: 5px;
}

.monaco-dropdown-with-default > .action-container > .action-label {
	margin-right: 0;
}

.monaco-dropdown-with-default > .action-container.menu-entry > .action-label.icon {
	width: 16px;
	height: 16px;
	background-repeat: no-repeat;
	background-position: 50%;
	background-size: 16px;
}

.monaco-dropdown-with-default:hover {
	background-color: var(--vscode-toolbar-hoverBackground);
}

.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*='codicon-'] {
	font-size: 12px;
	padding-left: 0px;
	padding-right: 0px;
	line-height: 16px;
	margin-left: -3px;
}

.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label {
	display: block;
	background-size: 16px;
	background-position: center center;
	background-repeat: no-repeat;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .diff-hidden-lines-widget {
	width: 100%;
}

.monaco-editor .diff-hidden-lines {
	height: 0px; /* The children each have a fixed height, the transform confuses the browser */
	transform: translate(0px, -10px);
	font-size: 13px;
	line-height: 14px;
}

.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover,
.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,
.monaco-editor .diff-hidden-lines .top.dragging,
.monaco-editor .diff-hidden-lines .bottom.dragging {
	background-color: var(--vscode-focusBorder);
}

.monaco-editor .diff-hidden-lines .top,
.monaco-editor .diff-hidden-lines .bottom {
	transition: background-color 0.1s ease-out;
	height: 4px;
	background-color: transparent;
	background-clip: padding-box;
	border-bottom: 2px solid transparent;
	border-top: 4px solid transparent;
	/*cursor: n-resize;*/
}

.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *,
.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),
.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom) {
	cursor: n-resize !important;
}

.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *,
.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,
.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom {
	cursor: s-resize !important;
}

.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *,
.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,
.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom {
	cursor: ns-resize !important;
}

.monaco-editor .diff-hidden-lines .top {
	transform: translate(0px, 4px);
}

.monaco-editor .diff-hidden-lines .bottom {
	transform: translate(0px, -6px);
}

.monaco-editor .diff-unchanged-lines {
	background: var(--vscode-diffEditor-unchangedCodeBackground);
}

.monaco-editor .noModificationsOverlay {
	z-index: 1;
	background: var(--vscode-editor-background);

	display: flex;
	justify-content: center;
	align-items: center;
}


.monaco-editor .diff-hidden-lines .center {
	background: var(--vscode-diffEditor-unchangedRegionBackground);
	color: var(--vscode-diffEditor-unchangedRegionForeground);
	overflow: hidden;
	display: block;
	text-overflow: ellipsis;
	white-space: nowrap;

	height: 24px;
	box-shadow: inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow), inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow);
}

.monaco-editor .diff-hidden-lines .center span.codicon {
	vertical-align: middle;
}

.monaco-editor .diff-hidden-lines .center a:hover .codicon {
	cursor: pointer;
	color: var(--vscode-editorLink-activeForeground) !important;
}

.monaco-editor .diff-hidden-lines div.breadcrumb-item {
	cursor: pointer;
}

.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover {
	color: var(--vscode-editorLink-activeForeground);
}

.monaco-editor .movedOriginal {
	border: 2px solid var(--vscode-diffEditor-move-border);
}

.monaco-editor .movedModified {
	border: 2px solid var(--vscode-diffEditor-move-border);
}

.monaco-editor .movedOriginal.currentMove, .monaco-editor .movedModified.currentMove {
	border: 2px solid var(--vscode-diffEditor-moveActive-border);
}

.monaco-diff-editor .moved-blocks-lines path.currentMove {
	stroke: var(--vscode-diffEditor-moveActive-border);
}

.monaco-diff-editor .moved-blocks-lines path {
	pointer-events: visiblestroke;
}

.monaco-diff-editor .moved-blocks-lines .arrow {
	fill: var(--vscode-diffEditor-move-border);
}

.monaco-diff-editor .moved-blocks-lines .arrow.currentMove {
	fill: var(--vscode-diffEditor-moveActive-border);
}

.monaco-diff-editor .moved-blocks-lines .arrow-rectangle {
	fill: var(--vscode-editor-background);
}

.monaco-diff-editor .moved-blocks-lines {
	position: absolute;
	pointer-events: none;
}

.monaco-diff-editor .moved-blocks-lines path {
	fill: none;
	stroke: var(--vscode-diffEditor-move-border);
	stroke-width: 2;
}

.monaco-editor .char-delete.diff-range-empty {
	margin-left: -1px;
	border-left: solid var(--vscode-diffEditor-removedTextBackground) 3px;
}

.monaco-editor .char-insert.diff-range-empty {
	border-left: solid var(--vscode-diffEditor-insertedTextBackground) 3px;
}

.monaco-editor .fold-unchanged {
	cursor: pointer;
}

.monaco-diff-editor .diff-moved-code-block {
	display: flex;
	justify-content: flex-end;
	margin-top: -4px;
}

.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon {
	width: 12px;
	height: 12px;
	font-size: 12px;
}

/* ---------- DiffEditor ---------- */

.monaco-diff-editor .diffOverview {
	z-index: 9;
}

.monaco-diff-editor .diffOverview .diffViewport {
	z-index: 10;
}

/* colors not externalized: using transparancy on background */
.monaco-diff-editor.vs			.diffOverview { background: rgba(0, 0, 0, 0.03); }
.monaco-diff-editor.vs-dark		.diffOverview { background: rgba(255, 255, 255, 0.01); }

.monaco-scrollable-element.modified-in-monaco-diff-editor.vs		.scrollbar { background: rgba(0,0,0,0); }
.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark	.scrollbar { background: rgba(0,0,0,0); }
.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black	.scrollbar { background: none; }
.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light	.scrollbar { background: none; }

.monaco-scrollable-element.modified-in-monaco-diff-editor .slider {
	z-index: 10;
}
.modified-in-monaco-diff-editor				.slider.active { background: rgba(171, 171, 171, .4); }
.modified-in-monaco-diff-editor.hc-black	.slider.active { background: none; }
.modified-in-monaco-diff-editor.hc-light	.slider.active { background: none; }

/* ---------- Diff ---------- */

.monaco-editor .insert-sign,
.monaco-diff-editor .insert-sign,
.monaco-editor .delete-sign,
.monaco-diff-editor .delete-sign {
	font-size: 11px !important;
	opacity: 0.7 !important;
	display: flex !important;
	align-items: center;
}
.monaco-editor.hc-black .insert-sign,
.monaco-diff-editor.hc-black .insert-sign,
.monaco-editor.hc-black .delete-sign,
.monaco-diff-editor.hc-black .delete-sign,
.monaco-editor.hc-light .insert-sign,
.monaco-diff-editor.hc-light .insert-sign,
.monaco-editor.hc-light .delete-sign,
.monaco-diff-editor.hc-light .delete-sign {
	opacity: 1;
}

.monaco-editor .inline-deleted-margin-view-zone {
	text-align: right;
}
.monaco-editor .inline-added-margin-view-zone {
	text-align: right;
}

.monaco-editor .arrow-revert-change {
	z-index: 10;
	position: absolute;
}

.monaco-editor .arrow-revert-change:hover {
	cursor: pointer;
}

/* ---------- Inline Diff ---------- */

.monaco-editor .view-zones .view-lines .view-line span {
	display: inline-block;
}

.monaco-editor .margin-view-zones .lightbulb-glyph:hover {
	cursor: pointer;
}

.monaco-editor .char-insert, .monaco-diff-editor .char-insert {
	background-color: var(--vscode-diffEditor-insertedTextBackground);
}

.monaco-editor .line-insert, .monaco-diff-editor .line-insert {
	background-color: var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground));
}

.monaco-editor .line-insert,
.monaco-editor .char-insert {
	box-sizing: border-box;
	border: 1px solid var(--vscode-diffEditor-insertedTextBorder);
}
.monaco-editor.hc-black .line-insert, .monaco-editor.hc-light .line-insert,
.monaco-editor.hc-black .char-insert, .monaco-editor.hc-light .char-insert {
	border-style: dashed;
}

.monaco-editor .line-delete,
.monaco-editor .char-delete {
	box-sizing: border-box;
	border: 1px solid var(--vscode-diffEditor-removedTextBorder);
}
.monaco-editor.hc-black .line-delete, .monaco-editor.hc-light .line-delete,
.monaco-editor.hc-black .char-delete, .monaco-editor.hc-light .char-delete {
	border-style: dashed;
}

.monaco-editor .inline-added-margin-view-zone,
.monaco-editor .gutter-insert, .monaco-diff-editor .gutter-insert {
	background-color: var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground));
}

.monaco-editor .char-delete, .monaco-diff-editor .char-delete, .monaco-editor .inline-deleted-text {
	background-color: var(--vscode-diffEditor-removedTextBackground);
}

.monaco-editor .inline-deleted-text {
	text-decoration: line-through;
}

.monaco-editor .line-delete, .monaco-diff-editor .line-delete {
	background-color: var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground));
}

.monaco-editor .inline-deleted-margin-view-zone,
.monaco-editor .gutter-delete, .monaco-diff-editor .gutter-delete {
	background-color: var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground));
}

.monaco-diff-editor.side-by-side .editor.modified {
	box-shadow: -6px 0 5px -5px var(--vscode-scrollbar-shadow);
	border-left: 1px solid var(--vscode-diffEditor-border);
}

.monaco-diff-editor.side-by-side .editor.original {
	box-shadow: 6px 0 5px -5px var(--vscode-scrollbar-shadow);
	border-right: 1px solid var(--vscode-diffEditor-border);
}

.monaco-diff-editor .diffViewport {
	background: var(--vscode-scrollbarSlider-background);
}

.monaco-diff-editor .diffViewport:hover {
	background: var(--vscode-scrollbarSlider-hoverBackground);
}

.monaco-diff-editor .diffViewport:active {
	background: var(--vscode-scrollbarSlider-activeBackground);
}

.monaco-editor .diagonal-fill {
	background-image: linear-gradient(
		-45deg,
		var(--vscode-diffEditor-diagonalFill) 12.5%,
		#0000 12.5%, #0000 50%,
		var(--vscode-diffEditor-diagonalFill) 50%, var(--vscode-diffEditor-diagonalFill) 62.5%,
		#0000 62.5%, #0000 100%
	);
	background-size: 8px 8px;
}

.monaco-diff-editor .gutter {
	position: relative;
	overflow: hidden;
	flex-shrink: 0;
	flex-grow: 0;

	& > div {
		position: absolute;
	}

	.gutterItem {
		opacity: 0;
		transition: opacity 0.7s;

		&.showAlways {
			opacity: 1;
			transition: none;
		}

		&.noTransition {
			transition: none;
		}
	}

	&:hover .gutterItem {
		opacity: 1;
		transition: opacity 0.1s ease-in-out;
	}

	.gutterItem {
		.background {
			position: absolute;
			height: 100%;
			left: 50%;
			width: 1px;

			border-left: 2px var(--vscode-menu-separatorBackground) solid;
		}

		.buttons {
			position: absolute;
			/*height: 100%;*/
			width: 100%;

			display: flex;
			justify-content: center;
			align-items: center;

			.monaco-toolbar {
				height: fit-content;
				.monaco-action-bar  {
					line-height: 1;

					.actions-container {
						width: fit-content;
						border-radius: 4px;
						background: var(--vscode-editorGutter-itemBackground);

						.action-item {
							&:hover {
								background: var(--vscode-toolbar-hoverBackground);
							}

							.action-label {
								color: var(--vscode-editorGutter-itemGlyphForeground);
								padding: 1px 2px;
							}
						}
					}
				}
			}
		}
	}
}


.monaco-diff-editor .diff-hidden-lines-compact {
	display: flex;
	height: 11px;
	.line-left, .line-right {
		height: 1px;
		border-top: 1px solid;
		border-color: var(--vscode-editorCodeLens-foreground);
		opacity: 0.5;
		margin: auto;
		width: 100%;
	}

	.line-left {
		width: 20px;
	}

	.text {
		color: var(--vscode-editorCodeLens-foreground);
		text-wrap: nowrap;
		font-size: 11px;
		line-height: 11px;
		margin: 0 4px;
	}
}

.monaco-editor .line-delete-selectable {
	user-select: text !important;
	-webkit-user-select: text !important;
	z-index: 1 !important;
}

.line-delete-selectable .view-line {
	user-select: text !important;
	-webkit-user-select: text !important;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .selection-anchor {
	background-color: #007ACC;
	width: 2px !important;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .bracket-match {
	box-sizing: border-box;
	background-color: var(--vscode-editorBracketMatch-background);
	border: 1px solid var(--vscode-editorBracketMatch-border);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.inline-editor-progress-decoration {
	display: inline-block;
	width: 1em;
	height: 1em;
}

.inline-progress-widget  {
	display: flex !important;
	justify-content: center;
	align-items: center;
}

.inline-progress-widget .icon {
	font-size: 80% !important;
}

.inline-progress-widget:hover .icon {
	font-size: 90% !important;
	animation: none;
}

.inline-progress-widget:hover .icon::before {
	content: var(--vscode-icon-x-content);
	font-family: var(--vscode-icon-x-font-family);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .monaco-editor-overlaymessage {
	padding-bottom: 8px;
	z-index: 10000;
}

.monaco-editor .monaco-editor-overlaymessage.below {
	padding-bottom: 0;
	padding-top: 8px;
	z-index: 10000;
}

@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}
.monaco-editor .monaco-editor-overlaymessage.fadeIn {
	animation: fadeIn 150ms ease-out;
}

@keyframes fadeOut {
	from { opacity: 1; }
	to { opacity: 0; }
}
.monaco-editor .monaco-editor-overlaymessage.fadeOut {
	animation: fadeOut 100ms ease-out;
}

.monaco-editor .monaco-editor-overlaymessage .message {
	padding: 2px 4px;
	color: var(--vscode-editorHoverWidget-foreground);
	background-color: var(--vscode-editorHoverWidget-background);
	border: 1px solid var(--vscode-inputValidation-infoBorder);
	border-radius: 3px;
}

.monaco-editor .monaco-editor-overlaymessage .message p {
	margin-block: 0px;
}

.monaco-editor .monaco-editor-overlaymessage .message a {
	color: var(--vscode-textLink-foreground);
}

.monaco-editor .monaco-editor-overlaymessage .message a:hover {
	color: var(--vscode-textLink-activeForeground);
}

.monaco-editor.hc-black .monaco-editor-overlaymessage .message,
.monaco-editor.hc-light .monaco-editor-overlaymessage .message {
	border-width: 2px;
}

.monaco-editor .monaco-editor-overlaymessage .anchor {
	width: 0 !important;
	height: 0 !important;
	border-color: transparent;
	border-style: solid;
	z-index: 1000;
	border-width: 8px;
	position: absolute;
	left: 2px;
}

.monaco-editor .monaco-editor-overlaymessage .anchor.top {
	border-bottom-color: var(--vscode-inputValidation-infoBorder);
}

.monaco-editor .monaco-editor-overlaymessage .anchor.below {
	border-top-color: var(--vscode-inputValidation-infoBorder);
}

.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,
.monaco-editor .monaco-editor-overlaymessage.below .anchor.below {
	display: none;
}

.monaco-editor .monaco-editor-overlaymessage.below .anchor.top {
	display: inherit;
	top: -8px;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-text-button {
	box-sizing: border-box;
	display: flex;
	width: 100%;
	padding: 4px;
	border-radius: 2px;
	text-align: center;
	cursor: pointer;
	justify-content: center;
	align-items: center;
	border: 1px solid var(--vscode-button-border, transparent);
	line-height: 18px;
}

.monaco-text-button:focus {
	outline-offset: 2px !important;
}

.monaco-text-button:hover {
	text-decoration: none !important;
}

.monaco-button.disabled:focus,
.monaco-button.disabled {
	opacity: 0.4 !important;
	cursor: default;
}

.monaco-text-button .codicon {
	margin: 0 0.2em;
	color: inherit !important;
}

.monaco-text-button.monaco-text-button-with-short-label {
	flex-direction: row;
	flex-wrap: wrap;
	padding: 0 4px;
	overflow: hidden;
	height: 28px;
}

.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label {
	flex-basis: 100%;
}

.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label-short {
	flex-grow: 1;
	width: 0;
	overflow: hidden;
}

.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label,
.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label-short {
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: normal;
	font-style: inherit;
	padding: 4px 0;
}

.monaco-button-dropdown {
	display: flex;
	cursor: pointer;
}

.monaco-button-dropdown.disabled {
	cursor: default;
}

.monaco-button-dropdown > .monaco-button:focus {
	outline-offset: -1px !important;
}

.monaco-button-dropdown.disabled > .monaco-button.disabled,
.monaco-button-dropdown.disabled > .monaco-button.disabled:focus,
.monaco-button-dropdown.disabled > .monaco-button-dropdown-separator {
	opacity: 0.4 !important;
}

.monaco-button-dropdown > .monaco-button.monaco-text-button {
	border-right-width: 0 !important;
}

.monaco-button-dropdown .monaco-button-dropdown-separator {
	padding: 4px 0;
	cursor: default;
}

.monaco-button-dropdown .monaco-button-dropdown-separator > div {
	height: 100%;
	width: 1px;
}

.monaco-button-dropdown > .monaco-button.monaco-dropdown-button {
	border: 1px solid var(--vscode-button-border, transparent);
	border-left-width: 0 !important;
	border-radius: 0 2px 2px 0;
	display: flex;
	align-items: center;
}

.monaco-button-dropdown > .monaco-button.monaco-text-button {
	border-radius: 2px 0 0 2px;
}

.monaco-description-button {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 4px 5px; /* allows button focus outline to be visible */
}

.monaco-description-button .monaco-button-description {
	font-style: italic;
	font-size: 11px;
	padding: 4px 20px;
}

.monaco-description-button .monaco-button-label,
.monaco-description-button .monaco-button-description {
	display: flex;
	justify-content: center;
	align-items: center;
}

.monaco-description-button .monaco-button-label > .codicon,
.monaco-description-button .monaco-button-description > .codicon {
	margin: 0 0.2em;
	color: inherit !important;
}

/* default color styles - based on CSS variables */

.monaco-button.default-colors,
.monaco-button-dropdown.default-colors > .monaco-button{
	color: var(--vscode-button-foreground);
	background-color: var(--vscode-button-background);
}

.monaco-button.default-colors:hover,
.monaco-button-dropdown.default-colors > .monaco-button:hover {
	background-color: var(--vscode-button-hoverBackground);
}

.monaco-button.default-colors.secondary,
.monaco-button-dropdown.default-colors > .monaco-button.secondary {
	color: var(--vscode-button-secondaryForeground);
	background-color: var(--vscode-button-secondaryBackground);
}

.monaco-button.default-colors.secondary:hover,
.monaco-button-dropdown.default-colors > .monaco-button.secondary:hover {
	background-color: var(--vscode-button-secondaryHoverBackground);
}

.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator {
	background-color: var(--vscode-button-background);
	border-top: 1px solid var(--vscode-button-border);
	border-bottom: 1px solid var(--vscode-button-border);
}

.monaco-button-dropdown.default-colors .monaco-button.secondary + .monaco-button-dropdown-separator {
	background-color: var(--vscode-button-secondaryBackground);
}

.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator > div {
	background-color: var(--vscode-button-separator);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.action-widget {
	font-size: 13px;
	border-radius: 0;
	min-width: 100px;
	max-width: 80vw;
	z-index: 40;
	display: block;
	width: 100%;
	border: 1px solid var(--vscode-menu-border) !important;
	border-radius: 5px;
	background-color: var(--vscode-menu-background);
	color: var(--vscode-menu-foreground);
	padding: 4px;
	box-shadow: 0 2px 8px var(--vscode-widget-shadow);
}

.context-view-block {
	position: fixed;
	cursor: initial;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
}

.context-view-pointerBlock {
	position: fixed;
	cursor: initial;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
}

.action-widget .monaco-list {
	user-select: none;
	-webkit-user-select: none;
	border: none !important;
	border-width: 0 !important;
}

.action-widget .monaco-list:focus:before {
	outline: 0 !important;
}

.action-widget .monaco-list .monaco-scrollable-element {
	overflow: visible;
}

/** Styles for each row in the list element **/
.action-widget .monaco-list .monaco-list-row {
	padding: 0 4px 0 4px;
	white-space: nowrap;
	cursor: pointer;
	touch-action: none;
	width: 100%;
	border-radius: 3px;
}

.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled) {
	background-color: var(--vscode-list-activeSelectionBackground) !important;
	color: var(--vscode-list-activeSelectionForeground);
	outline: 1px solid var(--vscode-menu-selectionBorder, transparent);
	outline-offset: -1px;
}

.action-widget .monaco-list-row.group-header {
	color: var(--vscode-descriptionForeground) !important;
	font-weight: 600;
	font-size: 13px;
}

.action-widget .monaco-list-row.group-header:not(:first-of-type) {
	margin-top: 2px;
}

.action-widget .monaco-scrollable-element .monaco-list-rows .monaco-list-row.separator {
	border-top: 1px solid var(--vscode-editorHoverWidget-border);
	color: var(--vscode-descriptionForeground);
	font-size: 12px;
	padding: 0;
	margin: 4px 0 0 0;
	cursor: default;
	user-select: none;
	border-radius: 0;
}

.action-widget .monaco-scrollable-element .monaco-list-rows .monaco-list-row.separator.focused {
	outline: 0 solid;
	background-color: transparent;
	border-radius: 0;
}

.action-widget .monaco-list-row.separator:first-of-type {
	border-top: none;
	margin-top: 0;
}

.action-widget .monaco-list .group-header,
.action-widget .monaco-list .option-disabled,
.action-widget .monaco-list .option-disabled:before,
.action-widget .monaco-list .option-disabled .focused,
.action-widget .monaco-list .option-disabled .focused:before {
	cursor: default !important;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	user-select: none;
	background-color: transparent !important;
	outline: 0 solid !important;
}

.action-widget .monaco-list-row.action {
	display: flex;
	gap: 4px;
	align-items: center;
}

.action-widget .monaco-list-row.action.option-disabled,
.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,
.action-widget .monaco-list-row.action.option-disabled .codicon,
.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled {
	color: var(--vscode-disabledForeground);
}


.action-widget .monaco-list-row.action:not(.option-disabled) .codicon {
	color: inherit;
}

.action-widget .monaco-list-row.action .title {
	flex: 1;
	overflow: hidden;
	text-overflow: ellipsis;
}

.action-widget .monaco-list-row.action .monaco-keybinding > .monaco-keybinding-key {
		background-color: var(--vscode-keybindingLabel-background);
		color: var(--vscode-keybindingLabel-foreground);
		border-style: solid;
		border-width: 1px;
		border-radius: 3px;
		border-color: var(--vscode-keybindingLabel-border);
		border-bottom-color: var(--vscode-keybindingLabel-bottomBorder);
		box-shadow: inset 0 -1px 0 var(--vscode-widget-shadow);
}

/* Action bar */

.action-widget .action-widget-action-bar {
	background-color: var(--vscode-menu-background);
	border-top: 1px solid var(--vscode-menu-border);
	margin-top: 2px;
}

.action-widget .action-widget-action-bar::before {
	display: block;
	content: "";
	width: 100%;
}

.action-widget .action-widget-action-bar .actions-container {
	padding: 4px 8px 2px 24px;
}

.action-widget-action-bar .action-label {
	color: var(--vscode-textLink-activeForeground);
	font-size: 13px;
	line-height: 22px;
	padding: 0;
	pointer-events: all;
}

.action-widget-action-bar .action-item {
	margin-right: 16px;
	pointer-events: none;
}

.action-widget-action-bar .action-label:hover {
	background-color: transparent !important;
}

.monaco-action-bar .actions-container.highlight-toggled .action-label.checked {
	/* The important gives this rule precedence over the hover rule. */
	background: var(--vscode-actionBar-toggledBackground) !important;
}

.action-widget .monaco-list .monaco-list-row .description {
	opacity: 0.7;
	margin-left: 0.5em;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-keybinding {
	display: flex;
	align-items: center;
	line-height: 10px;
}

.monaco-keybinding > .monaco-keybinding-key {
	display: inline-block;
	border-style: solid;
	border-width: 1px;
	border-radius: 3px;
	vertical-align: middle;
	font-size: 11px;
	padding: 3px 5px;
	margin: 0 2px;
}

.monaco-keybinding > .monaco-keybinding-key:first-child {
	margin-left: 0;
}

.monaco-keybinding > .monaco-keybinding-key:last-child {
	margin-right: 0;
}

.monaco-keybinding > .monaco-keybinding-key-separator {
	display: inline-block;
}

.monaco-keybinding > .monaco-keybinding-key-chord-separator {
	width: 6px;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.post-edit-widget {
	box-shadow: 0 0 8px 2px var(--vscode-widget-shadow);
	border: 1px solid var(--vscode-widget-border, transparent);
	border-radius: 4px;
	color: var(--vscode-button-foreground);
	background-color: var(--vscode-button-background);
	overflow: hidden;
}

.post-edit-widget .monaco-button {
	padding: 2px;
	border: none;
	border-radius: 0;
}

.post-edit-widget .monaco-button:hover {
	background-color: var(--vscode-button-hoverBackground) !important;
}

.post-edit-widget .monaco-button .codicon {
	margin: 0;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

@font-face {
	font-family: "codicon";
	font-display: block;
	src: url(/assets/codicon-ngg6Pgfi.ttf) format("truetype");
}

.codicon[class*='codicon-'] {
	font: normal normal normal 16px/1 codicon;
	display: inline-block;
	text-decoration: none;
	text-rendering: auto;
	text-align: center;
	text-transform: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	user-select: none;
	-webkit-user-select: none;
}

/* icon rules are dynamically created by the platform theme service (see iconsStyleSheet.ts) */
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.codicon-wrench-subaction {
	opacity: 0.5;
}

@keyframes codicon-spin {
	100% {
		transform:rotate(360deg);
	}
}

.codicon-sync.codicon-modifier-spin,
.codicon-loading.codicon-modifier-spin,
.codicon-gear.codicon-modifier-spin,
.codicon-notebook-state-executing.codicon-modifier-spin {
	/* Use steps to throttle FPS to reduce CPU usage */
	animation: codicon-spin 1.5s steps(30) infinite;
}

.codicon-modifier-disabled {
	opacity: 0.4;
}

/* custom speed & easing for loading icon */
.codicon-loading,
.codicon-tree-item-loading::before {
	animation-duration: 1s !important;
	animation-timing-function: cubic-bezier(0.53, 0.21, 0.29, 0.67) !important;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* stylelint-disable layer-checker */

.monaco-editor .codicon.codicon-symbol-array,
.monaco-workbench .codicon.codicon-symbol-array { color: var(--vscode-symbolIcon-arrayForeground); }
.monaco-editor .codicon.codicon-symbol-boolean,
.monaco-workbench .codicon.codicon-symbol-boolean { color: var(--vscode-symbolIcon-booleanForeground); }
.monaco-editor .codicon.codicon-symbol-class,
.monaco-workbench .codicon.codicon-symbol-class { color: var(--vscode-symbolIcon-classForeground); }
.monaco-editor .codicon.codicon-symbol-method,
.monaco-workbench .codicon.codicon-symbol-method { color: var(--vscode-symbolIcon-methodForeground); }
.monaco-editor .codicon.codicon-symbol-color,
.monaco-workbench .codicon.codicon-symbol-color { color: var(--vscode-symbolIcon-colorForeground); }
.monaco-editor .codicon.codicon-symbol-constant,
.monaco-workbench .codicon.codicon-symbol-constant { color: var(--vscode-symbolIcon-constantForeground); }
.monaco-editor .codicon.codicon-symbol-constructor,
.monaco-workbench .codicon.codicon-symbol-constructor { color: var(--vscode-symbolIcon-constructorForeground); }
.monaco-editor .codicon.codicon-symbol-value,
.monaco-workbench .codicon.codicon-symbol-value,
.monaco-editor .codicon.codicon-symbol-enum,
.monaco-workbench .codicon.codicon-symbol-enum { color: var(--vscode-symbolIcon-enumeratorForeground); }
.monaco-editor .codicon.codicon-symbol-enum-member,
.monaco-workbench .codicon.codicon-symbol-enum-member { color: var(--vscode-symbolIcon-enumeratorMemberForeground); }
.monaco-editor .codicon.codicon-symbol-event,
.monaco-workbench .codicon.codicon-symbol-event { color: var(--vscode-symbolIcon-eventForeground); }
.monaco-editor .codicon.codicon-symbol-field,
.monaco-workbench .codicon.codicon-symbol-field { color: var(--vscode-symbolIcon-fieldForeground); }
.monaco-editor .codicon.codicon-symbol-file,
.monaco-workbench .codicon.codicon-symbol-file { color: var(--vscode-symbolIcon-fileForeground); }
.monaco-editor .codicon.codicon-symbol-folder,
.monaco-workbench .codicon.codicon-symbol-folder { color: var(--vscode-symbolIcon-folderForeground); }
.monaco-editor .codicon.codicon-symbol-function,
.monaco-workbench .codicon.codicon-symbol-function { color: var(--vscode-symbolIcon-functionForeground); }
.monaco-editor .codicon.codicon-symbol-interface,
.monaco-workbench .codicon.codicon-symbol-interface { color: var(--vscode-symbolIcon-interfaceForeground); }
.monaco-editor .codicon.codicon-symbol-key,
.monaco-workbench .codicon.codicon-symbol-key { color: var(--vscode-symbolIcon-keyForeground); }
.monaco-editor .codicon.codicon-symbol-keyword,
.monaco-workbench .codicon.codicon-symbol-keyword { color: var(--vscode-symbolIcon-keywordForeground); }
.monaco-editor .codicon.codicon-symbol-module,
.monaco-workbench .codicon.codicon-symbol-module { color: var(--vscode-symbolIcon-moduleForeground); }
.monaco-editor .codicon.codicon-symbol-namespace,
.monaco-workbench .codicon.codicon-symbol-namespace { color: var(--vscode-symbolIcon-namespaceForeground); }
.monaco-editor .codicon.codicon-symbol-null,
.monaco-workbench .codicon.codicon-symbol-null { color: var(--vscode-symbolIcon-nullForeground); }
.monaco-editor .codicon.codicon-symbol-number,
.monaco-workbench .codicon.codicon-symbol-number { color: var(--vscode-symbolIcon-numberForeground); }
.monaco-editor .codicon.codicon-symbol-object,
.monaco-workbench .codicon.codicon-symbol-object { color: var(--vscode-symbolIcon-objectForeground); }
.monaco-editor .codicon.codicon-symbol-operator,
.monaco-workbench .codicon.codicon-symbol-operator { color: var(--vscode-symbolIcon-operatorForeground); }
.monaco-editor .codicon.codicon-symbol-package,
.monaco-workbench .codicon.codicon-symbol-package { color: var(--vscode-symbolIcon-packageForeground); }
.monaco-editor .codicon.codicon-symbol-property,
.monaco-workbench .codicon.codicon-symbol-property { color: var(--vscode-symbolIcon-propertyForeground); }
.monaco-editor .codicon.codicon-symbol-reference,
.monaco-workbench .codicon.codicon-symbol-reference { color: var(--vscode-symbolIcon-referenceForeground); }
.monaco-editor .codicon.codicon-symbol-snippet,
.monaco-workbench .codicon.codicon-symbol-snippet { color: var(--vscode-symbolIcon-snippetForeground); }
.monaco-editor .codicon.codicon-symbol-string,
.monaco-workbench .codicon.codicon-symbol-string { color: var(--vscode-symbolIcon-stringForeground); }
.monaco-editor .codicon.codicon-symbol-struct,
.monaco-workbench .codicon.codicon-symbol-struct { color: var(--vscode-symbolIcon-structForeground); }
.monaco-editor .codicon.codicon-symbol-text,
.monaco-workbench .codicon.codicon-symbol-text { color: var(--vscode-symbolIcon-textForeground); }
.monaco-editor .codicon.codicon-symbol-type-parameter,
.monaco-workbench .codicon.codicon-symbol-type-parameter { color: var(--vscode-symbolIcon-typeParameterForeground); }
.monaco-editor .codicon.codicon-symbol-unit,
.monaco-workbench .codicon.codicon-symbol-unit { color: var(--vscode-symbolIcon-unitForeground); }
.monaco-editor .codicon.codicon-symbol-variable,
.monaco-workbench .codicon.codicon-symbol-variable { color: var(--vscode-symbolIcon-variableForeground); }
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .lightBulbWidget {
	display: flex;
	align-items: center;
	justify-content: center;
}

.monaco-editor .lightBulbWidget:hover{
	cursor: pointer;
}

.monaco-editor .lightBulbWidget.codicon-light-bulb,
.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle {
	color: var(--vscode-editorLightBulb-foreground);
}

.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,
.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix {
	color: var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground));
}

.monaco-editor .lightBulbWidget.codicon-sparkle-filled {
	color: var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground));
}

.monaco-editor .lightBulbWidget:before {
	position: relative;
	z-index: 2;
}

.monaco-editor .lightBulbWidget:after {
	position: absolute;
	top: 0;
	left: 0;
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	opacity: 0.3;
	z-index: 1;
}

/* gutter decoration */
.monaco-editor .glyph-margin-widgets .cgmr[class*="codicon-gutter-lightbulb"] {
	display: block;
	cursor: pointer;
}

.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb,
.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-sparkle {
	color: var(--vscode-editorLightBulb-foreground);
}

.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-auto-fix,
.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-aifix-auto-fix {
	color: var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground));
}

.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-sparkle-filled {
	color: var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground));
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .codelens-decoration {
	overflow: hidden;
	display: inline-flex !important; /* !important to override inline display:block style */
	align-items: center;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: var(--vscode-editorCodeLens-foreground);
	line-height: var(--vscode-editorCodeLens-lineHeight);
	font-size: var(--vscode-editorCodeLens-fontSize);
	padding-right: calc(var(--vscode-editorCodeLens-fontSize)*0.5);
	font-feature-settings: var(--vscode-editorCodeLens-fontFeatureSettings);
	font-family: var(--vscode-editorCodeLens-fontFamily), var(--vscode-editorCodeLens-fontFamilyDefault);
}

.monaco-editor .codelens-decoration > span,
.monaco-editor .codelens-decoration > a {
	user-select: none;
	-webkit-user-select: none;
	white-space: nowrap;
	vertical-align: sub;
	display: inline-flex;
	align-items: center;
}

.monaco-editor .codelens-decoration > a {
	text-decoration: none;
}

.monaco-editor .codelens-decoration > a:hover {
	cursor: pointer;
	color: var(--vscode-editorLink-activeForeground) !important;
}

.monaco-editor .codelens-decoration > a:hover .codicon {
	color: var(--vscode-editorLink-activeForeground) !important;
}

.monaco-editor .codelens-decoration .codicon[class*='codicon-'] {
	vertical-align: middle;
	color: currentColor !important;
	color: var(--vscode-editorCodeLens-foreground);
	line-height: var(--vscode-editorCodeLens-lineHeight);
	font-size: var(--vscode-editorCodeLens-fontSize);
}


.monaco-editor .codelens-decoration > a:hover .codicon::before {
	cursor: pointer;
}

@keyframes fadein {
	0% { opacity: 0;}
	100% { opacity: 1;}
}

.monaco-editor .codelens-decoration.fadein {
	animation: fadein 0.1s linear;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
.monaco-editor .inlineSuggestionsHints {
	padding: 4px;

	.warningMessage p {
		margin: 0;
	}
}

.monaco-editor .inlineSuggestionsHints.withBorder {
	z-index: 39;
	color: var(--vscode-editorHoverWidget-foreground);
	background-color: var(--vscode-editorHoverWidget-background);
	border: 1px solid var(--vscode-editorHoverWidget-border);
}

.monaco-editor .inlineSuggestionsHints a {
	color: var(--vscode-foreground) !important;
}

.monaco-editor .inlineSuggestionsHints a:hover {
	color: var(--vscode-foreground) !important;
}

.monaco-editor .inlineSuggestionsHints .keybinding {
	display: flex;
	margin-left: 4px;
	opacity: 0.6;
}

.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key {
	font-size: 8px;
	padding: 2px 3px;
}

.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a {
	display: flex;
	min-width: 19px;
	justify-content: center;
}

.monaco-editor .inlineSuggestionStatusBarItemLabel {
	margin-right: 2px;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-hover {
	cursor: default;
	position: absolute;
	overflow: hidden;
	user-select: text;
	-webkit-user-select: text;
	box-sizing: border-box;
	line-height: 1.5em;
	white-space: var(--vscode-hover-whiteSpace, normal);
}

.monaco-hover.fade-in {
	animation: fadein 100ms linear;
}

.monaco-hover.hidden {
	display: none;
}

.monaco-hover a:hover:not(.disabled) {
	cursor: pointer;
}

.monaco-hover .hover-contents:not(.html-hover-contents) {
	padding: 4px 8px;
}

.monaco-hover .markdown-hover > .hover-contents:not(.code-hover-contents) {
	max-width: var(--vscode-hover-maxWidth, 500px);
	word-wrap: break-word;
}

.monaco-hover .markdown-hover > .hover-contents:not(.code-hover-contents) hr {
	min-width: 100%;
}

.monaco-hover p,
.monaco-hover .code,
.monaco-hover ul,
.monaco-hover h1,
.monaco-hover h2,
.monaco-hover h3,
.monaco-hover h4,
.monaco-hover h5,
.monaco-hover h6 {
	margin: 8px 0;
}

.monaco-hover h1,
.monaco-hover h2,
.monaco-hover h3,
.monaco-hover h4,
.monaco-hover h5,
.monaco-hover h6 {
	line-height: 1.1;
}

.monaco-hover code {
	font-family: var(--monaco-monospace-font);
}

.monaco-hover hr {
	box-sizing: border-box;
	border-left: 0px;
	border-right: 0px;
	margin-top: 4px;
	margin-bottom: -4px;
	margin-left: -8px;
	margin-right: -8px;
	height: 1px;
}

.monaco-hover p:first-child,
.monaco-hover .code:first-child,
.monaco-hover ul:first-child {
	margin-top: 0;
}

.monaco-hover p:last-child,
.monaco-hover .code:last-child,
.monaco-hover ul:last-child {
	margin-bottom: 0;
}

/* MarkupContent Layout */
.monaco-hover ul {
	padding-left: 20px;
}
.monaco-hover ol {
	padding-left: 20px;
}

.monaco-hover li > p {
	margin-bottom: 0;
}

.monaco-hover li > ul {
	margin-top: 0;
}

.monaco-hover code {
	border-radius: 3px;
	padding: 0 0.4em;
}

.monaco-hover .monaco-tokenized-source {
	white-space: var(--vscode-hover-sourceWhiteSpace, pre-wrap);
}

.monaco-hover .hover-row.status-bar {
	font-size: 12px;
	line-height: 22px;
}

.monaco-hover .hover-row.status-bar .info {
	font-style: italic;
	padding: 0px 8px;
}

.monaco-hover .hover-row.status-bar .actions {
	display: flex;
	padding: 0px 8px;
	width: 100%;
}

.monaco-hover .hover-row.status-bar .actions .action-container {
	margin-right: 16px;
	cursor: pointer;
	overflow: hidden;
	text-wrap: nowrap;
	text-overflow: ellipsis;
}

.monaco-hover .hover-row.status-bar .actions .action-container .action .icon {
	padding-right: 4px;
	vertical-align: middle;
}

.monaco-hover .hover-row.status-bar .actions .action-container a {
	color: var(--vscode-textLink-foreground);
	text-decoration: var(--text-link-decoration);
}

.monaco-hover .hover-row.status-bar .actions .action-container a .icon.codicon {
	color: var(--vscode-textLink-foreground);
}

.monaco-hover .markdown-hover .hover-contents .codicon {
	color: inherit;
	font-size: inherit;
	vertical-align: middle;
}

.monaco-hover .hover-contents a.code-link:hover,
.monaco-hover .hover-contents a.code-link {
	color: inherit;
}

.monaco-hover .hover-contents a.code-link:before {
	content: '(';
}

.monaco-hover .hover-contents a.code-link:after {
	content: ')';
}

.monaco-hover .hover-contents a.code-link > span {
	text-decoration: underline;
	/** Hack to force underline to show **/
	border-bottom: 1px solid transparent;
	text-underline-position: under;
	color: var(--vscode-textLink-foreground);
}

.monaco-hover .hover-contents a.code-link > span:hover {
	color: var(--vscode-textLink-activeForeground);
}

/**
 * Spans in markdown hovers need a margin-bottom to avoid looking cramped:
 * https://github.com/microsoft/vscode/issues/101496

 * This was later refined to only apply when the last child of a rendered markdown block (before the
 * border or a `hr`) uses background color:
 * https://github.com/microsoft/vscode/issues/228136
 */
.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) p:last-child [style*="background-color"] {
	margin-bottom: 4px;
	display: inline-block;
}

/**
 * Add a slight margin to try vertically align codicons with any text
 * https://github.com/microsoft/vscode/issues/221359
 */
.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span.codicon {
	margin-bottom: 2px;
}

.monaco-hover-content .action-container a {
	-webkit-user-select: none;
	user-select: none;
}

.monaco-hover-content .action-container.disabled {
	pointer-events: none;
	opacity: 0.4;
	cursor: default;
}

/* Prevent text selection in all button-like elements within hovers */
.monaco-hover .action-container,
.monaco-hover .action,
.monaco-hover button,
.monaco-hover .monaco-button,
.monaco-hover .monaco-text-button,
.monaco-hover [role="button"] {
	-webkit-user-select: none;
	user-select: none;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-custom-toggle {
	margin-left: 2px;
	float: left;
	cursor: pointer;
	overflow: hidden;
	width: 20px;
	height: 20px;
	border-radius: 3px;
	border: 1px solid transparent;
	padding: 1px;
	box-sizing:	border-box;
	user-select: none;
	-webkit-user-select: none;
}

.monaco-custom-toggle:hover {
	background-color: var(--vscode-inputOption-hoverBackground);
}

.hc-black .monaco-custom-toggle:hover,
.hc-light .monaco-custom-toggle:hover {
	border: 1px dashed var(--vscode-focusBorder);
}

.hc-black .monaco-custom-toggle,
.hc-light .monaco-custom-toggle {
	background: none;
}

.hc-black .monaco-custom-toggle:hover,
.hc-light .monaco-custom-toggle:hover {
	background: none;
}

.monaco-custom-toggle.monaco-checkbox {
	height: 18px;
	width: 18px;
	border: 1px solid transparent;
	border-radius: 3px;
	margin-right: 9px;
	margin-left: 0px;
	padding: 0px;
	opacity: 1;
	background-size: 16px !important;
}

.monaco-action-bar .checkbox-action-item {
	display: flex;
	align-items: center;
	border-radius: 2px;
	padding-right: 2px;
}

.monaco-action-bar .checkbox-action-item:hover {
	background-color: var(--vscode-toolbar-hoverBackground);
}

.monaco-action-bar .checkbox-action-item > .monaco-custom-toggle.monaco-checkbox {
	margin-right: 4px;
}

.monaco-action-bar .checkbox-action-item > .checkbox-label {
	font-size: 12px;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* Find widget */
.monaco-editor .find-widget {
	position: absolute;
	z-index: 35;
	height: 33px;
	overflow: hidden;
	line-height: 19px;
	transition: transform 200ms linear;
	padding: 0 4px;
	box-sizing: border-box;
	transform: translateY(calc(-100% - 10px)); /* shadow (10px) */
	box-shadow: 0 0 8px 2px var(--vscode-widget-shadow);
	color: var(--vscode-editorWidget-foreground);
	border-left: 1px solid var(--vscode-widget-border);
	border-right: 1px solid var(--vscode-widget-border);
	border-bottom: 1px solid var(--vscode-widget-border);
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	background-color: var(--vscode-editorWidget-background);
}

.monaco-reduce-motion .monaco-editor .find-widget {
	transition: transform 0ms linear;
}

.monaco-editor .find-widget textarea {
	margin: 0px;
}

.monaco-editor .find-widget.hiddenEditor {
	display: none;
}

/* Find widget when replace is toggled on */
.monaco-editor .find-widget.replaceToggled > .replace-part {
	display: flex;
}

.monaco-editor .find-widget.visible {
	transform: translateY(0);
}

/* This outline-color rule is used to override the outline color for synthetic-focus find input. */
.monaco-editor .find-widget .monaco-inputbox.synthetic-focus {
	outline: 1px solid -webkit-focus-ring-color;
	outline-offset: -1px;
	outline-color: var(--vscode-focusBorder);
}

.monaco-editor .find-widget .monaco-inputbox .input {
	background-color: transparent;
	min-height: 0;
}

.monaco-editor .find-widget .monaco-findInput .input {
	font-size: 13px;
}

.monaco-editor .find-widget > .find-part,
.monaco-editor .find-widget > .replace-part {
	margin: 3px 25px 0 17px;
	font-size: 12px;
	display: flex;
}

.monaco-editor .find-widget > .find-part .monaco-inputbox,
.monaco-editor .find-widget > .replace-part .monaco-inputbox {
	min-height: 25px;
}


.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .mirror {
	padding-right: 22px;
}

.monaco-editor .find-widget > .find-part .monaco-inputbox > .ibwrapper > .input,
.monaco-editor .find-widget > .find-part .monaco-inputbox > .ibwrapper > .mirror,
.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .input,
.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .mirror {
	padding-top: 2px;
	padding-bottom: 2px;
}

.monaco-editor .find-widget > .find-part .find-actions {
	height: 25px;
	display: flex;
	align-items: center;
}

.monaco-editor .find-widget > .replace-part .replace-actions {
	height: 25px;
	display: flex;
	align-items: center;
}

.monaco-editor .find-widget .monaco-findInput {
	vertical-align: middle;
	display: flex;
	flex: 1;
}

.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element {
	/* Make sure textarea inherits the width correctly */
	width: 100%;
}

.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical {
	/* Hide vertical scrollbar */
	opacity: 0;
}

.monaco-editor .find-widget .matchesCount {
	display: flex;
	flex: initial;
	margin: 0 0 0 3px;
	padding: 2px 0 0 2px;
	height: 25px;
	vertical-align: middle;
	box-sizing: border-box;
	text-align: center;
	line-height: 23px;
}

.monaco-editor .find-widget .button {
	width: 16px;
	height: 16px;
	padding: 3px;
	border-radius: 5px;
	display: flex;
	flex: initial;
	margin-left: 3px;
	background-position: center center;
	background-repeat: no-repeat;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* find in selection button */
.monaco-editor .find-widget .codicon-find-selection {
	width: 22px;
	height: 22px;
	padding: 3px;
	border-radius: 5px;
}

.monaco-editor .find-widget .button.left {
	margin-left: 0;
	margin-right: 3px;
}

.monaco-editor .find-widget .button.wide {
	width: auto;
	padding: 1px 6px;
	top: -1px;
}

.monaco-editor .find-widget .button.toggle {
	position: absolute;
	top: 0;
	left: 3px;
	width: 18px;
	height: 100%;
	border-radius: 0;
	box-sizing: border-box;
}

.monaco-editor .find-widget .button.toggle.disabled {
	display: none;
}

.monaco-editor .find-widget .disabled {
	color: var(--vscode-disabledForeground);
	cursor: default;
}

.monaco-editor .find-widget > .replace-part {
	display: none;
}

.monaco-editor .find-widget > .replace-part > .monaco-findInput {
	position: relative;
	display: flex;
	vertical-align: middle;
	flex: auto;
	flex-grow: 0;
	flex-shrink: 0;
}

.monaco-editor .find-widget > .replace-part > .monaco-findInput > .controls {
	position: absolute;
	top: 3px;
	right: 2px;
}

/* REDUCED */
.monaco-editor .find-widget.reduced-find-widget .matchesCount {
	display: none;
}

/* NARROW (SMALLER THAN REDUCED) */
.monaco-editor .find-widget.narrow-find-widget {
	max-width: 257px !important;
}

/* COLLAPSED (SMALLER THAN NARROW) */
.monaco-editor .find-widget.collapsed-find-widget {
	max-width: 170px !important;
}

.monaco-editor .find-widget.collapsed-find-widget .button.previous,
.monaco-editor .find-widget.collapsed-find-widget .button.next,
.monaco-editor .find-widget.collapsed-find-widget .button.replace,
.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,
.monaco-editor .find-widget.collapsed-find-widget > .find-part .monaco-findInput .controls {
	display: none;
}

.monaco-editor .find-widget.no-results .matchesCount {
	color: var(--vscode-errorForeground);
}

.monaco-editor .findMatch {
	animation-duration: 0;
	animation-name: inherit !important;
	background-color: var(--vscode-editor-findMatchHighlightBackground);
}

.monaco-editor .currentFindMatch {
	background-color: var(--vscode-editor-findMatchBackground);
	border: 2px solid var(--vscode-editor-findMatchBorder);
	padding: 1px;
	box-sizing: border-box;
}

.monaco-editor .findScope {
	background-color: var(--vscode-editor-findRangeHighlightBackground);
}

.monaco-editor .find-widget .monaco-sash {
	left: 0 !important;
	background-color: var(--vscode-editorWidget-resizeBorder, var(--vscode-editorWidget-border));
}

.monaco-editor.hc-black .find-widget .button:before {
	position: relative;
	top: 1px;
	left: 2px;
}

/* Action bars */
.monaco-editor .find-widget .button:not(.disabled):hover,
.monaco-editor .find-widget .codicon-find-selection:hover {
	background-color: var(--vscode-toolbar-hoverBackground) !important;
}

.monaco-editor.findMatch {
	background-color: var(--vscode-editor-findMatchHighlightBackground);
}

.monaco-editor.currentFindMatch {
	background-color: var(--vscode-editor-findMatchBackground);
}

.monaco-editor.findScope {
	background-color: var(--vscode-editor-findRangeHighlightBackground);
}

.monaco-editor.findMatch {
	background-color: var(--vscode-editorWidget-background);
}

/* Close button position. */
.monaco-editor .find-widget > .button.codicon-widget-close {
	position: absolute;
	top: 5px;
	right: 4px;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-inputbox {
	position: relative;
	display: block;
	padding: 0;
	box-sizing:	border-box;
	border-radius: 2px;

	/* Customizable */
	font-size: inherit;
}

.monaco-inputbox > .ibwrapper > .input,
.monaco-inputbox > .ibwrapper > .mirror {

	/* Customizable */
	padding: 4px 6px;
}

.monaco-inputbox > .ibwrapper {
	position: relative;
	width: 100%;
}

.monaco-inputbox > .ibwrapper > .input {
	display: inline-block;
	box-sizing:	border-box;
	width: 100%;
	height: 100%;
	line-height: inherit;
	border: none;
	font-family: inherit;
	font-size: inherit;
	resize: none;
	color: inherit;
}

.monaco-inputbox > .ibwrapper > input {
	text-overflow: ellipsis;
}

.monaco-inputbox > .ibwrapper > textarea.input {
	display: block;
	scrollbar-width: none; /* Firefox: hide scrollbars */
	outline: none;
}

.monaco-inputbox > .ibwrapper > textarea.input::-webkit-scrollbar {
	display: none; /* Chrome + Safari: hide scrollbar */
}

.monaco-inputbox > .ibwrapper > textarea.input.empty {
	white-space: nowrap;
}

.monaco-inputbox > .ibwrapper > .mirror {
	position: absolute;
	display: inline-block;
	width: 100%;
	top: 0;
	left: 0;
	box-sizing: border-box;
	white-space: pre-wrap;
	visibility: hidden;
	word-wrap: break-word;
}

/* Context view */

.monaco-inputbox-container {
	text-align: right;
}

.monaco-inputbox-container .monaco-inputbox-message {
	display: inline-block;
	overflow: hidden;
	text-align: left;
	width: 100%;
	box-sizing:	border-box;
	padding: 0.4em;
	font-size: 12px;
	line-height: 17px;
	margin-top: -1px;
	word-wrap: break-word;
}

/* Action bar support */
.monaco-inputbox .monaco-action-bar {
	position: absolute;
	right: 2px;
	top: 4px;
}

.monaco-inputbox .monaco-action-bar .action-item {
	margin-left: 2px;
}

.monaco-inputbox .monaco-action-bar .action-item .codicon {
	background-repeat: no-repeat;
	width: 16px;
	height: 16px;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
/* ---------- Find input ---------- */

.monaco-findInput {
	position: relative;
}

.monaco-findInput .monaco-inputbox {
	font-size: 13px;
	width: 100%;
}

.monaco-findInput > .controls {
	position: absolute;
	top: 3px;
	right: 2px;
}

.vs .monaco-findInput.disabled {
	background-color: #E1E1E1;
}

/* Theming */
.vs-dark .monaco-findInput.disabled {
	background-color: #333;
}

/* Highlighting */
.monaco-findInput.highlight-0 .controls,
.hc-light .monaco-findInput.highlight-0 .controls {
	animation: monaco-findInput-highlight-0 100ms linear 0s;
}

.monaco-findInput.highlight-1 .controls,
.hc-light .monaco-findInput.highlight-1 .controls {
	animation: monaco-findInput-highlight-1 100ms linear 0s;
}

.hc-black .monaco-findInput.highlight-0 .controls,
.vs-dark  .monaco-findInput.highlight-0 .controls {
	animation: monaco-findInput-highlight-dark-0 100ms linear 0s;
}

.hc-black .monaco-findInput.highlight-1 .controls,
.vs-dark  .monaco-findInput.highlight-1 .controls {
	animation: monaco-findInput-highlight-dark-1 100ms linear 0s;
}

@keyframes monaco-findInput-highlight-0 {
	0% { background: rgba(253, 255, 0, 0.8); }
	100% { background: transparent; }
}
@keyframes monaco-findInput-highlight-1 {
	0% { background: rgba(253, 255, 0, 0.8); }
	/* Made intentionally different such that the CSS minifier does not collapse the two animations into a single one*/
	99% { background: transparent; }
}

@keyframes monaco-findInput-highlight-dark-0 {
	0% { background: rgba(255, 255, 255, 0.44); }
	100% { background: transparent; }
}
@keyframes monaco-findInput-highlight-dark-1 {
	0% { background: rgba(255, 255, 255, 0.44); }
	/* Made intentionally different such that the CSS minifier does not collapse the two animations into a single one*/
	99% { background: transparent; }
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.colorpicker-widget {
	height: 190px;
	user-select: none;
	-webkit-user-select: none;
}

/* Decoration */

.colorpicker-color-decoration,
.hc-light .colorpicker-color-decoration {
	border: solid 0.1em #000;
	box-sizing: border-box;
	margin: 0.1em 0.2em 0 0.2em;
	width: 0.8em;
	height: 0.8em;
	line-height: 0.8em;
	display: inline-block;
	cursor: pointer;
}

.hc-black .colorpicker-color-decoration,
.vs-dark .colorpicker-color-decoration {
	border: solid 0.1em #eee;
}

/* Header */

.colorpicker-header {
	display: flex;
	height: 24px;
	position: relative;
	background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=");
	background-size: 9px 9px;
	image-rendering: pixelated;
}

.colorpicker-header .picked-color {
	width: 240px;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 24px;
	cursor: pointer;
	color: white;
	flex: 1;
	white-space: nowrap;
	overflow: hidden;
}

.colorpicker-header .picked-color .picked-color-presentation {
	white-space: nowrap;
	margin-left: 5px;
	margin-right: 5px;
}

.colorpicker-header .picked-color .codicon {
	color: inherit;
	font-size: 14px;
}

.colorpicker-header .picked-color.light {
	color: black;
}

.colorpicker-header .original-color {
	width: 74px;
	z-index: inherit;
	cursor: pointer;
}

.standalone-colorpicker {
	color: var(--vscode-editorHoverWidget-foreground);
	background-color: var(--vscode-editorHoverWidget-background);
	border: 1px solid var(--vscode-editorHoverWidget-border);
}

.colorpicker-header.standalone-colorpicker {
	border-bottom: none;
}

.colorpicker-header .close-button {
	cursor: pointer;
	background-color: var(--vscode-editorHoverWidget-background);
	border-left: 1px solid var(--vscode-editorHoverWidget-border);
}

.colorpicker-header .close-button-inner-div {
	width: 100%;
	height: 100%;
	text-align: center;
}

.colorpicker-header .close-button-inner-div:hover {
	background-color: var(--vscode-toolbar-hoverBackground);
}

.colorpicker-header .close-icon {
	padding: 3px;
}

/* Body */

.colorpicker-body {
	display: flex;
	padding: 8px;
	position: relative;
}

.colorpicker-body .saturation-wrap {
	overflow: hidden;
	height: 150px;
	position: relative;
	min-width: 220px;
	flex: 1;
}

.colorpicker-body .saturation-box {
	height: 150px;
	position: absolute;
}

.colorpicker-body .saturation-selection {
	width: 9px;
	height: 9px;
	margin: -5px 0 0 -5px;
	border: 1px solid rgb(255, 255, 255);
	border-radius: 100%;
	box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.8);
	position: absolute;
}

.colorpicker-body .strip {
	width: 25px;
	height: 150px;
}

.colorpicker-body .standalone-strip {
	width: 25px;
	height: 122px;
}

.colorpicker-body .hue-strip {
	position: relative;
	margin-left: 8px;
	cursor: grab;
	background: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
}

.colorpicker-body .opacity-strip {
	position: relative;
	margin-left: 8px;
	cursor: grab;
	background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=");
	background-size: 9px 9px;
	image-rendering: pixelated;
}

.colorpicker-body .strip.grabbing {
	cursor: grabbing;
}

.colorpicker-body .slider {
	position: absolute;
	top: 0;
	left: -2px;
	width: calc(100% + 4px);
	height: 4px;
	box-sizing: border-box;
	border: 1px solid rgba(255, 255, 255, 0.71);
	box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.85);
}

.colorpicker-body .strip .overlay {
	height: 150px;
	pointer-events: none;
}

.colorpicker-body .standalone-strip .standalone-overlay {
	height: 122px;
	pointer-events: none;
}

.standalone-colorpicker-body {
	display: block;
	border: 1px solid transparent;
	border-bottom: 1px solid var(--vscode-editorHoverWidget-border);
	overflow: hidden;
}

.colorpicker-body .insert-button {
	position: absolute;
	height: 20px;
	width: 58px;
	padding: 0px;
	right: 8px;
	bottom: 8px;
	background: var(--vscode-button-background);
	color: var(--vscode-button-foreground);
	border-radius: 2px;
	border: none;
	cursor: pointer;
}

.colorpicker-body .insert-button:hover{
	background: var(--vscode-button-hoverBackground);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .peekview-widget .head {
	box-sizing: border-box;
	display: flex;
	justify-content: space-between;
	flex-wrap: nowrap;
}

.monaco-editor .peekview-widget .head .peekview-title {
	display: flex;
	align-items: baseline;
	font-size: 13px;
	margin-left: 20px;
	min-width: 0;
	text-overflow: ellipsis;
	overflow: hidden;
}

.monaco-editor .peekview-widget .head .peekview-title.clickable {
	cursor: pointer;
}

.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty) {
	font-size: 0.9em;
	margin-left: 0.5em;
}

.monaco-editor .peekview-widget .head .peekview-title .meta {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.monaco-editor .peekview-widget .head .peekview-title .dirname {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.monaco-editor .peekview-widget .head .peekview-title .filename {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty)::before {
	content: '-';
	padding: 0 0.3em;
}

.monaco-editor .peekview-widget .head .peekview-actions {
	flex: 1;
	text-align: right;
	padding-right: 2px;
}

.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar {
	display: inline-block;
}

.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar,
.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar > .actions-container {
	height: 100%;
}

.monaco-editor .peekview-widget > .body {
	border-top: 1px solid;
	position: relative;
}

.monaco-editor .peekview-widget .head .peekview-title .codicon {
	margin-right: 4px;
	align-self: center;
}

.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon {
	color: inherit !important;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
.monaco-editor .zone-widget {
	position: absolute;
	z-index: 10;
}


.monaco-editor .zone-widget .zone-widget-container {
	border-top-style: solid;
	border-bottom-style: solid;
	border-top-width: 0;
	border-bottom-width: 0;
	position: relative;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-split-view2 {
	position: relative;
	width: 100%;
	height: 100%;
}

.monaco-split-view2 > .sash-container {
	position: absolute;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.monaco-split-view2 > .sash-container > .monaco-sash {
	pointer-events: initial;
}

.monaco-split-view2 > .monaco-scrollable-element {
	width: 100%;
	height: 100%;
}

.monaco-split-view2 > .monaco-scrollable-element > .split-view-container {
	width: 100%;
	height: 100%;
	white-space: nowrap;
	position: relative;
}

.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view {
	white-space: initial;
	position: absolute;
}

.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view:not(.visible) {
	display: none;
}

.monaco-split-view2.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view {
	width: 100%;
}

.monaco-split-view2.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view {
	height: 100%;
}

.monaco-split-view2.separator-border > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {
	content: ' ';
	position: absolute;
	top: 0;
	left: 0;
	z-index: 5;
	pointer-events: none;
	background-color: var(--separator-border);
}

.monaco-split-view2.separator-border.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {
	height: 100%;
	width: 1px;
}

.monaco-split-view2.separator-border.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {
	height: 1px;
	width: 100%;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-table {
	display: flex;
	flex-direction: column;
	position: relative;
	height: 100%;
	width: 100%;
	white-space: nowrap;
	overflow: hidden;
}

.monaco-table > .monaco-split-view2 {
	border-bottom: 1px solid transparent;
}

.monaco-table > .monaco-list {
	flex: 1;
}

.monaco-table-tr {
	display: flex;
	height: 100%;
}

.monaco-table-th {
	width: 100%;
	height: 100%;
	font-weight: bold;
	overflow: hidden;
	text-overflow: ellipsis;
}

.monaco-table-th,
.monaco-table-td {
	box-sizing: border-box;
	flex-shrink: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {
	content: "";
	position: absolute;
	left: calc(var(--vscode-sash-size) / 2);
	width: 0;
	border-left: 1px solid transparent;
}

.monaco-enable-motion .monaco-table > .monaco-split-view2,
.monaco-enable-motion .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {
	transition: border-color 0.2s ease-out;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-tl-row {
	display: flex;
	height: 100%;
	align-items: center;
	position: relative;
}

.monaco-tl-row.disabled {
	cursor: default;
}
.monaco-tl-indent {
	height: 100%;
	position: absolute;
	top: 0;
	left: 16px;
	pointer-events: none;
}

.hide-arrows .monaco-tl-indent {
	left: 12px;
}

.monaco-tl-indent > .indent-guide {
	display: inline-block;
	box-sizing: border-box;
	height: 100%;
	border-left: 1px solid transparent;
	opacity: 0;
}

.monaco-enable-motion .monaco-tl-indent > .indent-guide {
	transition: opacity 0.1s linear;
}

.monaco-tl-twistie,
.monaco-tl-contents {
	height: 100%;
}

.monaco-tl-twistie {
	font-size: 10px;
	text-align: right;
	padding-right: 6px;
	flex-shrink: 0;
	width: 16px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	transform: translateX(3px);
}

.monaco-tl-contents {
	flex: 1;
	overflow: hidden;
}

.monaco-tl-twistie::before {
	border-radius: 20px;
}

.monaco-tl-twistie.collapsed::before {
	transform: rotate(-90deg);
}

.monaco-tl-twistie.codicon-tree-item-loading::before {
	/* Use steps to throttle FPS to reduce CPU usage */
	animation: codicon-spin 1.25s steps(30) infinite;
}

.monaco-tree-type-filter {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	padding: 3px;
	max-width: 200px;
	z-index: 100;
	margin: 0 10px 0 6px;
	border: 1px solid var(--vscode-widget-border);
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
}

.monaco-enable-motion .monaco-tree-type-filter {
	transition: top 0.3s;
}

.monaco-tree-type-filter.disabled {
	top: -40px !important;
}

.monaco-tree-type-filter-input {
	flex: 1;
}

.monaco-tree-type-filter-input .monaco-inputbox {
	height: 23px;
}

.monaco-tree-type-filter-input .monaco-inputbox > .ibwrapper > .input,
.monaco-tree-type-filter-input .monaco-inputbox > .ibwrapper > .mirror {
	padding: 2px 4px;
}

.monaco-tree-type-filter-input .monaco-findInput > .controls {
	top: 2px;
}

.monaco-tree-type-filter-actionbar {
	margin-left: 4px;
}

.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label {
	padding: 2px;
}

.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 0;
	z-index: 13; /* Settings editor uses z-index: 12 */

	/* Backup color in case the tree does not provide the background color */
	background-color: var(--vscode-sideBar-background);
}

.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{
	position: absolute;
	width: 100%;
	opacity: 1 !important; /* Settings editor uses opacity < 1 */
	overflow: hidden;

	/* Backup color in case the tree does not provide the background color */
	background-color: var(--vscode-sideBar-background);
}

.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{
	background-color: var(--vscode-list-hoverBackground) !important;
	cursor: pointer;
}

.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,
.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow {
	display: none;
}

.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow {
	position: absolute;
	bottom: -3px;
	left: 0px;
	height: 0px; /* heigt is 3px and only set when there is a treeStickyScrollShadow color */
	width: 100%;
}

.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex="0"]:focus{
	outline: none;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* -- zone widget */
.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget {
	border-top-width: 1px;
	border-bottom-width: 1px;
}

.monaco-editor .reference-zone-widget .inline {
	display: inline-block;
	vertical-align: top;
}

.monaco-editor .reference-zone-widget .messages {
	height: 100%;
	width: 100%;
	text-align: center;
	padding: 3em 0;
}

.monaco-editor .reference-zone-widget .ref-tree {
	line-height: 23px;
	background-color: var(--vscode-peekViewResult-background);
	color: var(--vscode-peekViewResult-lineForeground);
}

.monaco-editor .reference-zone-widget .ref-tree .reference {
	text-overflow: ellipsis;
	overflow: hidden;
}

.monaco-editor .reference-zone-widget .ref-tree .reference-file {
	display: inline-flex;
	width: 100%;
	height: 100%;
	color: var(--vscode-peekViewResult-fileForeground);
}

.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file {
	color: inherit !important;
}

.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) {
	background-color: var(--vscode-peekViewResult-selectionBackground);
	color: var(--vscode-peekViewResult-selectionForeground) !important;
}

.monaco-editor .reference-zone-widget .ref-tree .reference-file .count {
	margin-right: 12px;
	margin-left: auto;
}

.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight {
	color: var(--vscode-peekViewResult-fileForeground) !important;
	background-color: var(--vscode-peekViewResult-matchHighlightBackground) !important;
}

.monaco-editor .reference-zone-widget .preview .reference-decoration {
	background-color: var(--vscode-peekViewEditor-matchHighlightBackground);
	border: 2px solid var(--vscode-peekViewEditor-matchHighlightBorder);
	box-sizing: border-box;
}

.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,
.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {
	background-color: var(--vscode-peekViewEditor-background);
}

.monaco-editor .reference-zone-widget .preview .monaco-editor .margin {
	background-color: var(--vscode-peekViewEditorGutter-background);
}

/* High Contrast Theming */

.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,
.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file {
	font-weight: bold;
}

.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,
.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight {
	border: 1px dotted var(--vscode-contrastActiveBorder, transparent);
	box-sizing: border-box;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-count-badge {
	padding: 3px 5px;
	border-radius: 11px;
	font-size: 11px;
	min-width: 18px;
	min-height: 18px;
	line-height: 11px;
	font-weight: normal;
	text-align: center;
	display: inline-block;
	box-sizing: border-box;
}

.monaco-count-badge.long {
	padding: 2px 3px;
	border-radius: 2px;
	min-height: auto;
	line-height: normal;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* ---------- Icon label ---------- */

.monaco-icon-label {
	display: flex; /* required for icons support :before rule */
	overflow: hidden;
	text-overflow: ellipsis;
}

.monaco-icon-label::before {

	/* svg icons rendered as background image */
	background-size: 16px;
	background-position: left center;
	background-repeat: no-repeat;
	padding-right: 6px;
	width: 16px;
	height: 22px;
	line-height: inherit !important;
	display: inline-block;

	/* fonts icons */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	vertical-align: top;

	flex-shrink: 0; /* fix for https://github.com/microsoft/vscode/issues/13787 */
}

.monaco-icon-label-iconpath {
	width: 16px;
	height: 22px;
	margin-right: 6px;
	display: flex;
}

.monaco-icon-label-container.disabled {
	color: var(--vscode-disabledForeground);
}
.monaco-icon-label > .monaco-icon-label-container {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	flex: 1;
}

.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name {
	color: inherit;
	white-space: pre; /* enable to show labels that include multiple whitespaces */
}

.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name > .label-separator {
	margin: 0 2px;
	opacity: 0.5;
}

.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-suffix-container > .label-suffix {
	opacity: .7;
	white-space: pre;
}

.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {
	opacity: .7;
	margin-left: 0.5em;
	font-size: 0.9em;
	white-space: pre; /* enable to show labels that include multiple whitespaces */
}

.monaco-icon-label.nowrap > .monaco-icon-label-container > .monaco-icon-description-container > .label-description{
	white-space: nowrap
}

.vs .monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {
	opacity: .95;
}

.monaco-icon-label.bold > .monaco-icon-label-container > .monaco-icon-name-container > .label-name,
.monaco-icon-label.bold > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {
	font-weight: bold;
}

.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-name-container > .label-name,
.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {
	font-style: italic;
}

.monaco-icon-label.deprecated {
	text-decoration: line-through;
	opacity: 0.66;
}

.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-name-container > .label-name,
.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {
	text-decoration: line-through;
}

.monaco-icon-label::after {
	opacity: 0.75;
	font-size: 90%;
	font-weight: 600;
	margin: auto 16px 0 5px; /* https://github.com/microsoft/vscode/issues/113223 */
	text-align: center;
}

/* make sure selection color wins when a label is being selected */
.monaco-list:focus .selected .monaco-icon-label, /* list */
.monaco-list:focus .selected .monaco-icon-label::after
{
	color: inherit !important;
}

.monaco-list-row.focused.selected .label-description,
.monaco-list-row.selected .label-description {
	opacity: .8;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* marker zone */

.monaco-editor .peekview-widget .head .peekview-title .severity-icon {
	display: inline-block;
	vertical-align: text-top;
	margin-right: 4px;
}

.monaco-editor .marker-widget {
	text-overflow: ellipsis;
	white-space: nowrap;
}

.monaco-editor .marker-widget > .stale {
	opacity: 0.6;
	font-style: italic;
}

.monaco-editor .marker-widget .title {
	display: inline-block;
	padding-right: 5px;
}

.monaco-editor .marker-widget .descriptioncontainer {
	position: absolute;
	white-space: pre;
	user-select: text;
	-webkit-user-select: text;
	padding: 8px 12px 0 20px;
}

.monaco-editor .marker-widget .descriptioncontainer .message {
	display: flex;
	flex-direction: column;
}

.monaco-editor .marker-widget .descriptioncontainer .message .details {
	padding-left: 6px;
}

.monaco-editor .marker-widget .descriptioncontainer .message .source,
.monaco-editor .marker-widget .descriptioncontainer .message span.code {
	opacity: 0.6;
}

.monaco-editor .marker-widget .descriptioncontainer .message a.code-link {
	opacity: 0.6;
	color: inherit;
}

.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before {
	content: '(';
}

.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after {
	content: ')';
}

.monaco-editor .marker-widget .descriptioncontainer .message a.code-link > span {
	text-decoration: underline;
	/** Hack to force underline to show **/
	border-bottom: 1px solid transparent;
	text-underline-position: under;
	color: var(--vscode-textLink-activeForeground);
}

.monaco-editor .marker-widget .descriptioncontainer .filename {
	cursor: pointer;
	color: var(--vscode-textLink-activeForeground);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .zone-widget .codicon.codicon-error,
.markers-panel .marker-icon.error, .markers-panel .marker-icon .codicon.codicon-error,
.text-search-provider-messages .providerMessage .codicon.codicon-error,
.extensions-viewlet > .extensions .codicon.codicon-error,
.extension-editor .codicon.codicon-error,
.chat-attached-context-attachment .codicon.codicon-error {
	color: var(--vscode-problemsErrorIcon-foreground);
}

.monaco-editor .zone-widget .codicon.codicon-warning,
.markers-panel .marker-icon.warning, .markers-panel .marker-icon .codicon.codicon-warning,
.text-search-provider-messages .providerMessage .codicon.codicon-warning,
.extensions-viewlet > .extensions .codicon.codicon-warning,
.extension-editor .codicon.codicon-warning,
.preferences-editor .codicon.codicon-warning {
	color: var(--vscode-problemsWarningIcon-foreground);
}

.monaco-editor .zone-widget .codicon.codicon-info,
.markers-panel .marker-icon.info, .markers-panel .marker-icon .codicon.codicon-info,
.text-search-provider-messages .providerMessage .codicon.codicon-info,
.extensions-viewlet > .extensions .codicon.codicon-info,
.extension-editor .codicon.codicon-info {
	color: var(--vscode-problemsInfoIcon-foreground);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .hoverHighlight {
	background-color: var(--vscode-editor-hoverHighlightBackground);
}

.monaco-editor .monaco-resizable-hover {
	border: 1px solid var(--vscode-editorHoverWidget-border);
	border-radius: 3px;
	box-sizing: content-box;
}

.monaco-editor .monaco-resizable-hover > .monaco-hover {
	border: none;
	border-radius: none;
}

.monaco-editor .monaco-hover {
	border: 1px solid var(--vscode-editorHoverWidget-border);
	border-radius: 3px;
	color: var(--vscode-editorHoverWidget-foreground);
	background-color: var(--vscode-editorHoverWidget-background);
}

.monaco-editor .monaco-hover a {
	color: var(--vscode-textLink-foreground);
}

.monaco-editor .monaco-hover a:hover {
	color: var(--vscode-textLink-activeForeground);
}

.monaco-editor .monaco-hover .hover-row {
	display: flex;
}

.monaco-editor .monaco-hover .hover-row.hover-row-with-copy {
	position: relative;
	padding-right: 20px;
}

.monaco-editor .monaco-hover .hover-row .hover-row-contents {
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.monaco-editor .monaco-hover .hover-row .verbosity-actions {
	border-right: 1px solid var(--vscode-editorHoverWidget-border);
	width: 22px;
	overflow-y: clip;
}

.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner {
	display: flex;
	flex-direction: column;
	padding-left: 5px;
	padding-right: 5px;
	justify-content: flex-end;
	position: relative;
}

.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner .codicon {
	cursor: pointer;
	font-size: 11px;
}

.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner .codicon.enabled {
	color: var(--vscode-textLink-foreground);
}

.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner .codicon.disabled {
	opacity: 0.6;
}

.monaco-editor .monaco-hover .hover-row .actions {
	background-color: var(--vscode-editorHoverWidget-statusBarBackground);
}

.monaco-editor .monaco-hover code {
	background-color: var(--vscode-textCodeBlock-background);
}

.monaco-editor .monaco-hover .hover-copy-button {
	position: absolute;
	top: 4px;
	right: 4px;
	padding: 2px 4px;
	border-radius: 3px;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
}

.monaco-editor .monaco-hover .hover-row-with-copy:hover .hover-copy-button,
.monaco-editor .monaco-hover .hover-row-with-copy:focus-within .hover-copy-button {
	opacity: 1;
}

.monaco-editor .monaco-hover .hover-copy-button:hover {
	background-color: var(--vscode-toolbar-hoverBackground);
	cursor: pointer;
}

.monaco-editor .monaco-hover .hover-copy-button:focus {
	outline: 1px solid var(--vscode-focusBorder);
	outline-offset: -1px;
}

.monaco-editor .monaco-hover .hover-copy-button .codicon {
	font-size: 16px;
	color: var(--vscode-foreground);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor.vs .dnd-target,
.monaco-editor.hc-light .dnd-target {
	border-right: 2px dotted black;
	color: white; /* opposite of black */
}
.monaco-editor.vs-dark .dnd-target {
	border-right: 2px dotted #AEAFAD;
	color: #51504f; /* opposite of #AEAFAD */
}
.monaco-editor.hc-black .dnd-target {
	border-right: 2px dotted #fff;
	color: #000; /* opposite of #fff */
}

.monaco-editor.mouse-default .view-lines,
.monaco-editor.vs-dark.mac.mouse-default .view-lines,
.monaco-editor.hc-black.mac.mouse-default .view-lines,
.monaco-editor.hc-light.mac.mouse-default .view-lines {
	cursor: default;
}
.monaco-editor.mouse-copy .view-lines,
.monaco-editor.vs-dark.mac.mouse-copy .view-lines,
.monaco-editor.hc-black.mac.mouse-copy .view-lines,
.monaco-editor.hc-light.mac.mouse-copy .view-lines {
	cursor: copy;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .findOptionsWidget {
	background-color: var(--vscode-editorWidget-background);
	color: var(--vscode-editorWidget-foreground);
	box-shadow: 0 0 8px 2px var(--vscode-widget-shadow);
	border: 2px solid var(--vscode-contrastBorder);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,
.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,
.monaco-editor .margin-view-overlays .codicon-folding-expanded,
.monaco-editor .margin-view-overlays .codicon-folding-collapsed {
	cursor: pointer;
	opacity: 0;
	transition: opacity 0.5s;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 140%;
	margin-left: 2px;
}

.monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,
.monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,
.monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,
.monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed {
	transition: initial;
}

.monaco-editor .margin-view-overlays:hover .codicon,
.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,
.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,
.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons {
	opacity: 1;
}

.monaco-editor .inline-folded:after {
	color: var(--vscode-editor-foldPlaceholderForeground);
	margin: 0.1em 0.2em 0 0.2em;
	content: "\22EF"; /* ellipses unicode character */
	display: inline;
	line-height: 1em;
	cursor: pointer;
}

.monaco-editor .folded-background {
	background-color: var(--vscode-editor-foldBackground);
}

.monaco-editor .cldr.codicon.codicon-folding-expanded,
.monaco-editor .cldr.codicon.codicon-folding-collapsed,
.monaco-editor .cldr.codicon.codicon-folding-manual-expanded,
.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed {
	color: var(--vscode-editorGutter-foldingControlForeground) !important;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .snippet-placeholder {
	min-width: 2px;
	outline-style: solid;
	outline-width: 1px;
	background-color: var(--vscode-editor-snippetTabstopHighlightBackground, transparent);
	outline-color: var(--vscode-editor-snippetTabstopHighlightBorder, transparent);
}

.monaco-editor .finish-snippet-placeholder {
	outline-style: solid;
	outline-width: 1px;
	background-color: var(--vscode-editor-snippetFinalTabstopHighlightBackground, transparent);
	outline-color: var(--vscode-editor-snippetFinalTabstopHighlightBorder, transparent);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* Suggest widget*/

.monaco-editor .suggest-widget {
	width: 430px;
	z-index: 40;
	display: flex;
	flex-direction: column;
	border-radius: 3px;
}

.monaco-editor .suggest-widget.message {
	flex-direction: row;
	align-items: center;
}

.monaco-editor .suggest-widget,
.monaco-editor .suggest-details {
	flex: 0 1 auto;
	width: 100%;
	border-style: solid;
	border-width: 1px;
	border-color: var(--vscode-editorSuggestWidget-border);
	background-color: var(--vscode-editorSuggestWidget-background);
}

.monaco-editor.hc-black .suggest-widget,
.monaco-editor.hc-black .suggest-details,
.monaco-editor.hc-light .suggest-widget,
.monaco-editor.hc-light .suggest-details {
	border-width: 2px;
}

/* Styles for status bar part */


.monaco-editor .suggest-widget .suggest-status-bar {
	box-sizing: border-box;
	display: none;
	flex-flow: row nowrap;
	justify-content: space-between;
	width: 100%;
	font-size: 80%;
	padding: 0 4px 0 4px;
	border-top: 1px solid var(--vscode-editorSuggestWidget-border);
	overflow: hidden;
}

.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar {
	display: flex;
}

.monaco-editor .suggest-widget .suggest-status-bar .left {
	padding-right: 8px;
}

.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label {
	color: var(--vscode-editorSuggestWidgetStatus-foreground);
}

.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label {
	margin-right: 0;
}

.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label::after {
	content: ', ';
	margin-right: 0.3em;
}

.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row > .contents > .main > .right > .readMore,
.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label > .contents > .main > .right > .readMore {
	display: none;
}

.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover > .contents > .main > .right.can-expand-details > .details-label {
	width: 100%;
}

/* Styles for Message element for when widget is loading or is empty */

.monaco-editor .suggest-widget > .message {
	padding-left: 22px;
}

/** Styles for the list element **/

.monaco-editor .suggest-widget > .tree {
	height: 100%;
	width: 100%;
}

.monaco-editor .suggest-widget .monaco-list {
	user-select: none;
	-webkit-user-select: none;
}

/** Styles for each row in the list element **/

.monaco-editor .suggest-widget .monaco-list .monaco-list-row {
	display: flex;
	-mox-box-sizing: border-box;
	box-sizing: border-box;
	padding-right: 10px;
	background-repeat: no-repeat;
	background-position: 2px 2px;
	white-space: nowrap;
	cursor: pointer;
	touch-action: none;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused {
	color: var(--vscode-editorSuggestWidget-selectedForeground);
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon {
	color: var(--vscode-editorSuggestWidget-selectedIconForeground);
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents {
	flex: 1;
	height: 100%;
	overflow: hidden;
	padding-left: 2px;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main {
	display: flex;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: pre;
	justify-content: space-between;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left,
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right {
	display: flex;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused) > .contents > .main .monaco-icon-label {
	color: var(--vscode-editorSuggestWidget-foreground);
}

.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight {
	font-weight: bold;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main .monaco-highlighted-label .highlight {
	color: var(--vscode-editorSuggestWidget-highlightForeground);
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused > .contents > .main .monaco-highlighted-label .highlight {
	color: var(--vscode-editorSuggestWidget-focusHighlightForeground);
}

/** ReadMore Icon styles **/

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .codicon-close,
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .readMore::before {
	color: inherit;
	opacity: 1;
	font-size: 14px;
	cursor: pointer;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .codicon-close {
	position: absolute;
	top: 6px;
	right: 2px;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .codicon-close:hover,
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .readMore:hover {
	opacity: 1;
}

/** signature, qualifier, type/details opacity **/

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label {
	opacity: 0.7;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .signature-label {
	overflow: hidden;
	text-overflow: ellipsis;
	opacity: 0.6;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .qualifier-label {
	margin-left: 12px;
	opacity: 0.4;
	font-size: 85%;
	line-height: initial;
	text-overflow: ellipsis;
	overflow: hidden;
	align-self: center;
}

/** Type Info and icon next to the label in the focused completion item **/

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label {
	font-size: 85%;
	margin-left: 1.1em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label > .monaco-tokenized-source {
	display: inline;
}

/** Details: if using CompletionItem#details, show on focus **/

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label {
	display: none;
}

.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused > .contents > .main > .right > .details-label {
	display: inline;
}

/** Details: if using CompletionItemLabel#details, always show **/

.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label) > .contents > .main > .right > .details-label,
.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label) > .contents > .main > .right > .details-label {
	display: inline;
}

/** Ellipsis on hover **/

.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover > .contents > .main > .right.can-expand-details > .details-label {
	width: calc(100% - 26px);
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left {
	flex-shrink: 1;
	flex-grow: 1;
	overflow: hidden;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .monaco-icon-label {
	flex-shrink: 0;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label) > .contents > .main > .left > .monaco-icon-label {
	max-width: 100%;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label > .contents > .main > .left > .monaco-icon-label {
	flex-shrink: 1;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right {
	overflow: hidden;
	flex-shrink: 4;
	max-width: 70%;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .readMore {
	display: inline-block;
	position: absolute;
	right: 10px;
	width: 18px;
	height: 18px;
	visibility: hidden;
}

/** Do NOT display ReadMore when docs is side/below **/

.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row > .contents > .main > .right > .readMore {
	display: none !important;
}

/** Do NOT display ReadMore when using plain CompletionItemLabel (details/documentation might not be resolved) **/

.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label > .contents > .main > .right > .readMore {
	display: none;
}

/** Focused item can show ReadMore, but can't when docs is side/below **/

.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label > .contents > .main > .right > .readMore {
	display: inline-block;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover > .contents > .main > .right > .readMore {
	visibility: visible;
}

/** Styles for each row in the list **/

.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated {
	opacity: 0.66;
	text-decoration: unset;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated > .monaco-icon-label-container > .monaco-icon-name-container {
	text-decoration: line-through;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label::before {
	height: 100%;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon {
	display: block;
	height: 16px;
	width: 16px;
	margin-left: 2px;
	background-repeat: no-repeat;
	background-size: 80%;
	background-position: center;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide {
	display: none;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon {
	display: flex;
	align-items: center;
	margin-right: 4px;
}

.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,
.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon::before {
	display: none;
}

.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan {
	margin: 0 0 0 0.3em;
	border: 0.1em solid #000;
	width: 0.7em;
	height: 0.7em;
	display: inline-block;
}

/** Styles for the docs of the completion item in focus **/

.monaco-editor .suggest-details-container {
	z-index: 41;
}

.monaco-editor .suggest-details {
	display: flex;
	flex-direction: column;
	cursor: default;
	color: var(--vscode-editorSuggestWidget-foreground);
}

.monaco-editor .suggest-details:focus {
	border-color: var(--vscode-focusBorder);
}

.monaco-editor .suggest-details a {
	color: var(--vscode-textLink-foreground);
}

.monaco-editor .suggest-details a:hover {
	color: var(--vscode-textLink-activeForeground);
}

.monaco-editor .suggest-details code {
	background-color: var(--vscode-textCodeBlock-background);
}

.monaco-editor .suggest-details.no-docs {
	display: none;
}

.monaco-editor .suggest-details > .monaco-scrollable-element {
	flex: 1;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body {
	box-sizing: border-box;
	height: 100%;
	width: 100%;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .type {
	flex: 2;
	overflow: hidden;
	text-overflow: ellipsis;
	opacity: 0.7;
	white-space: pre;
	margin: 0 24px 0 0;
	padding: 4px 0 4px 5px;
}

.monaco-editor .suggest-details.detail-and-doc > .monaco-scrollable-element > .body > .header > .type {
	padding-bottom: 12px;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .type.auto-wrap {
	white-space: normal;
	word-break: break-all;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs {
	margin: 0;
	padding: 4px 5px;
	white-space: pre-wrap;
}

.monaco-editor .suggest-details.no-type > .monaco-scrollable-element > .body > .docs {
	margin-right: 24px;
	overflow: hidden;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs {
	padding: 0;
	white-space: initial;
	min-height: calc(1rem + 8px);
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > div,
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > span:not(:empty) {
	padding: 4px 5px;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > div > p:first-child {
	margin-top: 0;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > div > p:last-child {
	margin-bottom: 0;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs .monaco-tokenized-source {
	white-space: pre;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs .code {
	white-space: pre-wrap;
	word-wrap: break-word;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs .codicon {
	vertical-align: sub;
}

.monaco-editor .suggest-details > .monaco-scrollable-element > .body > p:empty {
	display: none;
}

.monaco-editor .suggest-details code {
	border-radius: 3px;
	padding: 0 0.4em;
}

.monaco-editor .suggest-details ul {
	padding-left: 20px;
}

.monaco-editor .suggest-details ol {
	padding-left: 20px;
}

.monaco-editor .suggest-details p code {
	font-family: var(--monaco-monospace-font);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .suggest-preview-additional-widget {
	white-space: nowrap;
}

.monaco-editor .suggest-preview-additional-widget .content-spacer {
	color: transparent;
	white-space: pre;
}

.monaco-editor .suggest-preview-additional-widget .button {
	display: inline-block;
	cursor: pointer;
	text-decoration: underline;
	text-underline-position: under;
}

.monaco-editor .ghost-text-hidden {
	opacity: 0;
	font-size: 0;
}

.monaco-editor .ghost-text-decoration,
.monaco-editor .suggest-preview-text .ghost-text {
	font-style: italic;
}

.monaco-editor .suggest-preview-text.clickable .view-line {
	z-index: 1;
}

.monaco-editor .ghost-text-decoration.clickable,
.monaco-editor .ghost-text-decoration-preview.clickable,
.monaco-editor .suggest-preview-text.clickable .ghost-text {
	cursor: pointer;
}

.monaco-editor .inline-completion-text-to-replace {
	text-decoration: underline;
	text-underline-position: under;
}

.monaco-editor .ghost-text-decoration,
.monaco-editor .ghost-text-decoration-preview,
.monaco-editor .suggest-preview-text .ghost-text {
	&.syntax-highlighted {
		opacity: 0.7;
	}
	&:not(.syntax-highlighted) {
		color: var(--vscode-editorGhostText-foreground);
	}
	background-color: var(--vscode-editorGhostText-background);
	border: 1px solid var(--vscode-editorGhostText-border);
}

.monaco-editor .ghost-text-decoration.warning,
.monaco-editor .ghost-text-decoration-preview.warning,
.monaco-editor .suggest-preview-text .ghost-text.warning {
	background: var(--monaco-editor-warning-decoration) repeat-x bottom left;
	border-bottom: 4px double var(--vscode-editorWarning-border);
}

.ghost-text-view-warning-widget-icon {
	.codicon {
		color: var(--vscode-editorWarning-foreground) !important;
	}
}

.monaco-editor {
	.edits-fadeout-decoration {
		opacity: var(--animation-opacity, 1);
		background-color: var(--vscode-inlineEdit-modifiedChangedTextBackground);
	}
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .sticky-widget {
	overflow: hidden;
	border-bottom: 1px solid var(--vscode-editorStickyScroll-border);
	width: 100%;
	box-shadow: var(--vscode-editorStickyScroll-shadow) 0 4px 2px -2px;
	z-index: 4;
	right: initial !important;
	margin-left: '0px';
}

.monaco-editor .sticky-widget .sticky-widget-line-numbers {
	float: left;
	background-color: var(--vscode-editorStickyScrollGutter-background);
}

.monaco-editor .sticky-widget.peek .sticky-widget-line-numbers {
	background-color: var(--vscode-peekViewEditorStickyScrollGutter-background);
}

.monaco-editor .sticky-widget .sticky-widget-lines-scrollable {
	display: inline-block;
	position: absolute;
	overflow: hidden;
	width: var(--vscode-editorStickyScroll-scrollableWidth);
	background-color: var(--vscode-editorStickyScroll-background);
}

.monaco-editor .sticky-widget.peek .sticky-widget-lines-scrollable {
	background-color: var(--vscode-peekViewEditorStickyScroll-background);
}

.monaco-editor .sticky-widget .sticky-widget-lines {
	position: absolute;
	background-color: inherit;
}

.monaco-editor .sticky-widget .sticky-line-number,
.monaco-editor .sticky-widget .sticky-line-content {
	color: var(--vscode-editorLineNumber-foreground);
	white-space: nowrap;
	display: inline-block;
	position: absolute;
	background-color: inherit;
}

.monaco-editor .sticky-widget .sticky-line-number .codicon-folding-expanded,
.monaco-editor .sticky-widget .sticky-line-number .codicon-folding-collapsed {
	float: right;
	transition: var(--vscode-editorStickyScroll-foldingOpacityTransition);
	position: absolute;
	margin-left: 2px;
}

.monaco-editor .sticky-widget .sticky-line-content {
	width: var(--vscode-editorStickyScroll-scrollableWidth);
	background-color: inherit;
	white-space: nowrap;
}

.monaco-editor .sticky-widget .sticky-line-number-inner {
	display: inline-block;
	text-align: right;
}

.monaco-editor .sticky-widget .sticky-line-content:hover {
	background-color: var(--vscode-editorStickyScrollHover-background);
	cursor: pointer;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/*
	@keyframes blink { 50% { border-color: orange; }  }
*/

.monaco-editor {
	.inline-edits-view-indicator {
		display: flex;

		z-index: 34; /* Below the find widget */
		height: 20px;

		color: var(--vscode-inlineEdit-gutterIndicator-primaryForeground);
		background-color: var(--vscode-inlineEdit-gutterIndicator-background);
		border: 1px solid var(--vscode-inlineEdit-gutterIndicator-primaryBorder);
		border-radius: 3px;

		align-items: center;
		padding: 2px;
		padding-right: 10px;
		margin: 0 4px;

		/*
		animation: blink 1s;
		animation-iteration-count: 3;
		*/

		opacity: 0;

		&.contained {
			transition: opacity 0.2s ease-in-out;
			transition-delay: 0.4s;
		}

		&.visible {
			opacity: 1;
		}

		&.top {
			opacity: 1;

			.icon {
				transform: rotate(90deg);
			}
		}

		&.bottom {
			opacity: 1;

			.icon {
				transform: rotate(-90deg);
			}
		}

		.icon {
			display: flex;
			align-items: center;
			margin: 0 2px;
			transform: none;
			transition: transform 0.2s ease-in-out;
			.codicon {
				color: var(--vscode-inlineEdit-gutterIndicator-primaryForeground);
			}
		}

		.label {
			margin: 0 2px;

			display: flex;
			justify-content: center;
			width: 100%;
		}
	}

	.inline-edits-view .editorContainer {
		.preview .monaco-editor {
			.view-overlays .current-line-exact {
				border: none;
			}

			.current-line-margin {
				border: none;
			}
		}

		.inline-edits-view-zone.diagonal-fill {
			opacity: 0.5;
		}
	}

	.strike-through {
		text-decoration: line-through;
	}

	.inlineCompletions-line-insert {
		background: var(--vscode-inlineEdit-modifiedChangedLineBackground);
	}

	.inlineCompletions-line-delete {
		background: var(--vscode-inlineEdit-originalChangedLineBackground);
	}

	.inlineCompletions-char-insert {
		background: var(--vscode-inlineEdit-modifiedChangedTextBackground);
		cursor: pointer;
	}

	.inlineCompletions-char-delete {
		background: var(--vscode-inlineEdit-originalChangedTextBackground);
	}

	.inlineCompletions-char-delete.diff-range-empty {
		margin-left: -1px;
		border-left: solid var(--vscode-inlineEdit-originalChangedTextBackground) 3px;
	}

	.inlineCompletions-char-insert.diff-range-empty {
		border-left: solid var(--vscode-inlineEdit-modifiedChangedTextBackground) 3px;
	}

	.inlineCompletions-char-delete.single-line-inline { /* Editor Decoration */
		border: 1px solid var(--vscode-editorHoverWidget-border);
		margin: -2px 0 0 -2px;
	}

	.inlineCompletions-char-insert.single-line-inline { /* Inline Decoration */
		border-top: 1px solid var(--vscode-inlineEdit-modifiedBorder); /* TODO: Do not set border inline but create overlaywidget (like deletion view) */
		border-bottom: 1px solid var(--vscode-inlineEdit-modifiedBorder); /* TODO: Do not set border inline but create overlaywidget (like deletion view) */
	}
	.inlineCompletions-char-insert.single-line-inline.start {
		border-top-left-radius: 4px;
		border-bottom-left-radius: 4px;
		border-left: 1px solid var(--vscode-inlineEdit-modifiedBorder); /* TODO: Do not set border inline but create overlaywidget (like deletion view) */
	}
	.inlineCompletions-char-insert.single-line-inline.end {
		border-top-right-radius: 4px;
		border-bottom-right-radius: 4px;
		border-right: 1px solid var(--vscode-inlineEdit-modifiedBorder); /* TODO: Do not set border inline but create overlaywidget (like deletion view) */
	}

	.inlineCompletions-char-delete.single-line-inline.empty,
	.inlineCompletions-char-insert.single-line-inline.empty {
		display: none;
	}

	.inlineCompletions.strike-through {
		text-decoration-thickness: 1px;
	}

	/* line replacement bubbles */

	.inlineCompletions-modified-bubble {
		background: var(--vscode-inlineEdit-modifiedChangedTextBackground);
	}

	.inlineCompletions-original-bubble {
		background: var(--vscode-inlineEdit-originalChangedTextBackground);
	}

	.inlineCompletions-modified-bubble,
	.inlineCompletions-original-bubble {
		pointer-events: none;
		display: inline-block;
	}

	.inline-edit.ghost-text,
	.inline-edit.ghost-text-decoration,
	.inline-edit.ghost-text-decoration-preview,
	.inline-edit.suggest-preview-text .ghost-text {
		&.syntax-highlighted {
			opacity: 1 !important;
		}
		font-style: normal !important;
	}

	.inline-edit.modified-background.ghost-text,
	.inline-edit.modified-background.ghost-text-decoration,
	.inline-edit.modified-background.ghost-text-decoration-preview,
	.inline-edit.modified-background.suggest-preview-text .ghost-text {
		background: var(--vscode-inlineEdit-modifiedChangedTextBackground) !important;
		display: inline-block !important;
	}

	.inlineCompletions-original-lines {
		background: var(--vscode-editor-background);
	}
}

.monaco-menu-option {
	color: var(--vscode-editorActionList-foreground);
	font-size: 13px;
	padding: 0 4px;
	line-height: 28px;
	display: flex;
	gap: 4px;
	align-items: center;
	border-radius: 3px;
	cursor: pointer;

	.monaco-keybinding-key {
		font-size: 13px;
		opacity: 0.7;
	}

	&.active {
		background: var(--vscode-editorActionList-focusBackground);
		color: var(--vscode-editorActionList-focusForeground);
		outline: 1px solid var(--vscode-menu-selectionBorder, transparent);
		outline-offset: -1px;

		.monaco-keybinding-key {
			color: var(--vscode-editorActionList-focusForeground);
		}
	}
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .goto-definition-link {
	text-decoration: underline;
	cursor: pointer;
	color: var(--vscode-editorLink-activeForeground) !important;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/


.monaco-editor.vs .valueSetReplacement {
	outline: solid 2px var(--vscode-editorBracketMatch-border);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .linked-editing-decoration {
	background-color: var(--vscode-editor-linkedEditingBackground);

	/* Ensure decoration is visible even if range is empty */
	min-width: 1px;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
.monaco-editor .detected-link,
.monaco-editor .detected-link-active {
	text-decoration: underline;
	text-underline-position: under;
}

.monaco-editor .detected-link-active {
	cursor: pointer;
	color: var(--vscode-editorLink-activeForeground) !important;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor {
	.scroll-editor-on-middle-click-dot {
		cursor: all-scroll;
		position: absolute;
		z-index: 1;
		background-color: var(--vscode-editor-foreground, white);
		border: 1px solid var(--vscode-editor-background, black);
		opacity: 0.5;
		width: 5px;
		height: 5px;
		border-radius: 50%;
		transform: translate(-50%, -50%);

		&.hidden {
			display: none;
		}
	}

	&.scroll-editor-on-middle-click-editor * {
		cursor: all-scroll;
	}
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .focused .selectionHighlight {
	background-color: var(--vscode-editor-selectionHighlightBackground);
	box-sizing: border-box;
	border: 1px solid var(--vscode-editor-selectionHighlightBorder);
}
.monaco-editor.hc-black .focused .selectionHighlight, .monaco-editor.hc-light .focused .selectionHighlight {
	border-style: dotted;
}

.monaco-editor .wordHighlight {
	background-color: var(--vscode-editor-wordHighlightBackground);
	box-sizing: border-box;
	border: 1px solid var(--vscode-editor-wordHighlightBorder);
}
.monaco-editor.hc-black .wordHighlight, .monaco-editor.hc-light .wordHighlight {
	border-style: dotted;
}

.monaco-editor .wordHighlightStrong {
	background-color: var(--vscode-editor-wordHighlightStrongBackground);
	box-sizing: border-box;
	border: 1px solid var(--vscode-editor-wordHighlightStrongBorder);
}
.monaco-editor.hc-black .wordHighlightStrong, .monaco-editor.hc-light .wordHighlightStrong {
	border-style: dotted;
}

.monaco-editor .wordHighlightText {
	background-color: var(--vscode-editor-wordHighlightTextBackground);
	box-sizing: border-box;
	border: 1px solid var(--vscode-editor-wordHighlightTextBorder);
}
.monaco-editor.hc-black .wordHighlightText, .monaco-editor.hc-light .wordHighlightText {
	border-style: dotted;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .parameter-hints-widget {
	/* Must be higher than the sash's z-index and terminal canvases but lower than the suggest widget */
	z-index: 39;
	display: flex;
	flex-direction: column;
	line-height: 1.5em;
	cursor: default;
	color: var(--vscode-editorHoverWidget-foreground);
	background-color: var(--vscode-editorHoverWidget-background);
	border: 1px solid var(--vscode-editorHoverWidget-border);
}

.hc-black .monaco-editor .parameter-hints-widget,
.hc-light .monaco-editor .parameter-hints-widget {
	border-width: 2px;
}

.monaco-editor .parameter-hints-widget > .phwrapper {
	max-width: 440px;
	display: flex;
	flex-direction: row;
}

.monaco-editor .parameter-hints-widget.multiple {
	min-height: 3.3em;
	padding: 0;
}

.monaco-editor .parameter-hints-widget.multiple .body::before {
	content: "";
	display: block;
	height: 100%;
	position: absolute;
	opacity: 0.5;
	border-left: 1px solid var(--vscode-editorHoverWidget-border);
}

.monaco-editor .parameter-hints-widget p,
.monaco-editor .parameter-hints-widget ul {
	margin: 8px 0;
}

.monaco-editor .parameter-hints-widget .monaco-scrollable-element,
.monaco-editor .parameter-hints-widget .body {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 100%;
}

.monaco-editor .parameter-hints-widget .signature {
	padding: 4px 5px;
	position: relative;
}

.monaco-editor .parameter-hints-widget .signature.has-docs::after {
	content: "";
	display: block;
	position: absolute;
	left: 0;
	width: 100%;
	padding-top: 4px;
	opacity: 0.5;
	border-bottom: 1px solid var(--vscode-editorHoverWidget-border);
}

.monaco-editor .parameter-hints-widget .code {
	font-family: var(--vscode-parameterHintsWidget-editorFontFamily), var(--vscode-parameterHintsWidget-editorFontFamilyDefault);
}

.monaco-editor .parameter-hints-widget .docs {
	padding: 0 10px 0 5px;
	white-space: pre-wrap;
}

.monaco-editor .parameter-hints-widget .docs.empty {
	display: none;
}

.monaco-editor .parameter-hints-widget .docs a {
	color: var(--vscode-textLink-foreground);
}

.monaco-editor .parameter-hints-widget .docs a:hover {
	color: var(--vscode-textLink-activeForeground);
	cursor: pointer;
}

.monaco-editor .parameter-hints-widget .docs .markdown-docs {
	white-space: initial;
}

.monaco-editor .parameter-hints-widget .docs code {
	font-family: var(--monaco-monospace-font);
	border-radius: 3px;
	padding: 0 0.4em;
	background-color: var(--vscode-textCodeBlock-background);
}

.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source,
.monaco-editor .parameter-hints-widget .docs .code {
	white-space: pre-wrap;
}

.monaco-editor .parameter-hints-widget .controls {
	display: none;
	flex-direction: column;
	align-items: center;
	min-width: 22px;
	justify-content: flex-end;
}

.monaco-editor .parameter-hints-widget.multiple .controls {
	display: flex;
	padding: 0 2px;
}

.monaco-editor .parameter-hints-widget.multiple .button {
	width: 16px;
	height: 16px;
	background-repeat: no-repeat;
	cursor: pointer;
}

.monaco-editor .parameter-hints-widget .button.previous {
	bottom: 24px;
}

.monaco-editor .parameter-hints-widget .overloads {
	text-align: center;
	height: 12px;
	line-height: 12px;
	font-family: var(--monaco-monospace-font);
}

.monaco-editor .parameter-hints-widget .signature .parameter.active {
	color: var(--vscode-editorHoverWidget-highlightForeground);
	font-weight: bold;
}

.monaco-editor .parameter-hints-widget .documentation-parameter > .parameter {
	font-weight: bold;
	margin-right: 0.5em;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor {
	.editorPlaceholder {
		top: 0px;
		position: absolute;
		overflow: hidden;
		text-overflow: ellipsis;
		text-wrap: nowrap;
		pointer-events: none;

		color: var(--vscode-editor-placeholder-foreground);
	}
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .rename-box {
	z-index: 100;
	color: inherit;
	border-radius: 4px;
}

.monaco-editor .rename-box.preview {
	padding: 4px 4px 0 4px;
}

.monaco-editor .rename-box .rename-input-with-button {
	padding: 3px;
	border-radius: 2px;
	width: calc(100% - 8px); /* 4px padding on each side */
}

.monaco-editor .rename-box .rename-input {
	width: calc(100% - 8px); /* 4px padding on each side */
	padding: 0;
}

.monaco-editor .rename-box .rename-input:focus {
	outline: none;
}

.monaco-editor .rename-box .rename-suggestions-button {
	display: flex;
	align-items: center;
	padding: 3px;
	background-color: transparent;
	border: none;
	border-radius: 5px;
	cursor: pointer;
}

.monaco-editor .rename-box .rename-suggestions-button:hover {
	background-color: var(--vscode-toolbar-hoverBackground)
}

.monaco-editor .rename-box .rename-candidate-list-container .monaco-list-row {
	border-radius: 2px;
}

.monaco-editor .rename-box .rename-label {
	display: none;
	opacity: .8;
}

.monaco-editor .rename-box.preview .rename-label {
	display: inherit;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .unicode-highlight {
	border: 1px solid var(--vscode-editorUnicodeHighlight-border);
	background-color: var(--vscode-editorUnicodeHighlight-background);
	box-sizing: border-box;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.editor-banner {
	box-sizing: border-box;
	cursor: default;
	width: 100%;
	font-size: 12px;
	display: flex;
	overflow: visible;

	height: 26px;

	background: var(--vscode-banner-background);
}


.editor-banner .icon-container {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	padding: 0 6px 0 10px;
}

.editor-banner .icon-container.custom-icon {
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 16px;
	width: 16px;
	padding: 0;
	margin: 0 6px 0 10px;
}

.editor-banner .message-container {
	display: flex;
	align-items: center;
	line-height: 26px;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}

.editor-banner .message-container p {
	margin-block-start: 0;
	margin-block-end: 0;
}

.editor-banner .message-actions-container {
	flex-grow: 1;
	flex-shrink: 0;
	line-height: 26px;
	margin: 0 4px;
}

.editor-banner .message-actions-container a.monaco-button {
	width: inherit;
	margin: 2px 8px;
	padding: 0px 12px;
}

.editor-banner .message-actions-container a {
	padding: 3px;
	margin-left: 12px;
	text-decoration: underline;
}

.editor-banner .action-container {
	padding: 0 10px 0 6px;
}

.editor-banner {
	background-color: var(--vscode-banner-background);
}

.editor-banner,
.editor-banner .action-container .codicon,
.editor-banner .message-actions-container .monaco-link {
	color: var(--vscode-banner-foreground);
}

.editor-banner .icon-container .codicon {
	color: var(--vscode-banner-iconForeground);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-link {
	color: var(--vscode-textLink-foreground);
}

.monaco-link:hover {
	color: var(--vscode-textLink-activeForeground);
}

/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.floating-menu-overlay-widget {
	padding: 0px;
	color: var(--vscode-button-foreground);
	background-color: var(--vscode-button-background);
	border-radius: 2px;
	border: 1px solid var(--vscode-contrastBorder);
	display: flex;
	align-items: center;
	z-index: 10;
	box-shadow: 0 2px 8px var(--vscode-widget-shadow);
	overflow: hidden;

	.action-item > .action-label {
		padding: 5px;
		font-size: 12px;
		border-radius: 2px;
	}

	.action-item > .action-label.codicon {
		color: var(--vscode-button-foreground);
	}

	.action-item > .action-label.codicon:not(.separator) {
		padding-top: 6px;
		padding-bottom: 6px;
	}

	.action-item:first-child > .action-label {
		padding-left: 7px;
	}

	.action-item:last-child > .action-label {
		padding-right: 7px;
	}

	.action-item .action-label.separator {
		background-color: var(--vscode-menu-separatorBackground);
	}
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .iPadShowKeyboard {
	width: 58px;
	min-width: 0;
	height: 36px;
	min-height: 0;
	margin: 0;
	padding: 0;
	position: absolute;
	resize: none;
	overflow: hidden;
	background: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjNDI0MjQyIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==") center center no-repeat;
	border: 4px solid #F6F6F6;
	border-radius: 4px;
}

.monaco-editor.vs-dark .iPadShowKeyboard {
	background: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjQzVDNUM1Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==") center center no-repeat;
	border: 4px solid #252526;
}/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .tokens-inspect-widget {
	z-index: 50;
	user-select: text;
	-webkit-user-select: text;
	padding: 10px;
	color: var(--vscode-editorHoverWidget-foreground);
	background-color: var(--vscode-editorHoverWidget-background);
	border: 1px solid var(--vscode-editorHoverWidget-border);
}
.monaco-editor.hc-black .tokens-inspect-widget, .monaco-editor.hc-light .tokens-inspect-widget {
	border-width: 2px;
}

.monaco-editor .tokens-inspect-widget .tokens-inspect-separator {
	height: 1px;
	border: 0;
	background-color: var(--vscode-editorHoverWidget-border);
}

.monaco-editor .tokens-inspect-widget .tm-token {
	font-family: var(--monaco-monospace-font);
}

.monaco-editor .tokens-inspect-widget .tm-token-length {
	font-weight: normal;
	font-size: 60%;
	float: right;
}

.monaco-editor .tokens-inspect-widget .tm-metadata-table {
	width: 100%;
}

.monaco-editor .tokens-inspect-widget .tm-metadata-value {
	font-family: var(--monaco-monospace-font);
	text-align: right;
}

.monaco-editor .tokens-inspect-widget .tm-token-type {
	font-family: var(--monaco-monospace-font);
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/


/* Default standalone editor fonts */
.monaco-editor {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif;
	--monaco-monospace-font: "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace;
}

.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label {
	stroke-width: 1.2px;
}

.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,
.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,
.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label {
	stroke-width: 1.2px;
}

.monaco-hover p {
	margin: 0;
}

/* See https://github.com/microsoft/monaco-editor/issues/2168#issuecomment-780078600 */
.monaco-aria-container {
	position: absolute !important;
	top: 0; /* avoid being placed underneath a sibling element */
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
}

.monaco-editor .synthetic-focus, .monaco-diff-editor .synthetic-focus,
.monaco-editor [tabindex="0"]:focus, .monaco-diff-editor [tabindex="0"]:focus,
.monaco-editor [tabindex="-1"]:focus, .monaco-diff-editor [tabindex="-1"]:focus,
.monaco-editor button:focus, .monaco-diff-editor button:focus,
.monaco-editor input[type=button]:focus, .monaco-diff-editor input[type=button]:focus,
.monaco-editor input[type=checkbox]:focus, .monaco-diff-editor input[type=checkbox]:focus,
.monaco-editor input[type=search]:focus, .monaco-diff-editor input[type=search]:focus,
.monaco-editor input[type=text]:focus, .monaco-diff-editor input[type=text]:focus,
.monaco-editor select:focus, .monaco-diff-editor select:focus,
.monaco-editor textarea:focus, .monaco-diff-editor textarea:focus {
	outline-width: 1px;
	outline-style: solid;
	outline-offset: -1px;
	outline-color: var(--vscode-focusBorder);
	opacity: 1
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* stylelint-disable layer-checker */

.monaco-hover.workbench-hover {
	position: relative;
	font-size: 13px;
	line-height: 19px;
	/* Must be higher than sash's z-index and terminal canvases */
	z-index: 40;
	overflow: hidden;
	max-width: 700px;
	background: var(--vscode-editorHoverWidget-background);
	border: 1px solid var(--vscode-editorHoverWidget-border);
	border-radius: 5px;
	color: var(--vscode-editorHoverWidget-foreground);
	box-shadow: 0 2px 8px var(--vscode-widget-shadow);
}

.monaco-hover.workbench-hover .monaco-action-bar .action-item .codicon {
	/* Given our font-size, adjust action icons accordingly */
	width: 13px;
	height: 13px;
}

.monaco-hover.workbench-hover hr {
	border-bottom: none;
}

.monaco-hover.workbench-hover.compact {
	font-size: 12px;
}

.monaco-hover.workbench-hover.compact .monaco-action-bar .action-item .codicon {
	/* Given our font-size, adjust action icons accordingly */
	width: 12px;
	height: 12px;
}

.monaco-hover.workbench-hover.compact .hover-contents {
	padding: 2px 8px;
}

.workbench-hover-container.locked .monaco-hover.workbench-hover {
	outline: 1px solid var(--vscode-editorHoverWidget-border);
}
.workbench-hover-container:focus-within.locked .monaco-hover.workbench-hover {
	outline-color: var(--vscode-focusBorder);
}

.workbench-hover-pointer {
	position: absolute;
	/* Must be higher than workbench hover z-index */
	z-index: 41;
	pointer-events: none;
}

.workbench-hover-pointer:after {
	content: '';
	position: absolute;
	width: 5px;
	height: 5px;
	background-color: var(--vscode-editorHoverWidget-background);
	border-right: 1px solid var(--vscode-editorHoverWidget-border);
	border-bottom: 1px solid var(--vscode-editorHoverWidget-border);
}
.workbench-hover-container:not(:focus-within).locked .workbench-hover-pointer:after {
	width: 4px;
	height: 4px;
	border-right-width: 2px;
	border-bottom-width: 2px;
}
.workbench-hover-container:focus-within .workbench-hover-pointer:after {
	border-right: 1px solid var(--vscode-focusBorder);
	border-bottom: 1px solid var(--vscode-focusBorder);
}

.workbench-hover-pointer.left   { left: -3px; }
.workbench-hover-pointer.right  { right: 3px; }
.workbench-hover-pointer.top    { top: -3px; }
.workbench-hover-pointer.bottom { bottom: 3px; }

.workbench-hover-pointer.left:after {
	transform: rotate(135deg);
}

.workbench-hover-pointer.right:after {
	transform: rotate(315deg);
}

.workbench-hover-pointer.top:after {
	transform: rotate(225deg);
}

.workbench-hover-pointer.bottom:after {
	transform: rotate(45deg);
}

.monaco-hover.workbench-hover a {
	color: var(--vscode-textLink-foreground);
}

.monaco-hover.workbench-hover a:focus {
	outline: 1px solid;
	outline-offset: -1px;
	text-decoration: underline;
	outline-color: var(--vscode-focusBorder);
}

.monaco-hover.workbench-hover a.codicon:focus,
.monaco-hover.workbench-hover a.monaco-button:focus {
	text-decoration: none;
}

.monaco-hover.workbench-hover a:hover,
.monaco-hover.workbench-hover a:active {
	color: var(--vscode-textLink-activeForeground);
}

.monaco-hover.workbench-hover code {
	background: var(--vscode-textCodeBlock-background);
}

.monaco-hover.workbench-hover .hover-row .actions {
	background: var(--vscode-editorHoverWidget-statusBarBackground);
}

.monaco-hover.workbench-hover.right-aligned {
	/* The context view service wraps strangely when it's right up against the edge without this */
	left: 1px;
}

.monaco-hover.workbench-hover.right-aligned .hover-row.status-bar .actions {
	flex-direction: row-reverse;
}

.monaco-hover.workbench-hover.right-aligned .hover-row.status-bar .actions .action-container {
	margin-right: 0;
	margin-left: 16px;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.context-view {
	position: absolute;
}

.context-view.fixed {
	all: initial;
	font-family: inherit;
	font-size: 13px;
	position: fixed;
	color: inherit;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.quick-input-widget {
	font-size: 13px;
}

.quick-input-widget .monaco-highlighted-label .highlight,
.quick-input-widget .monaco-highlighted-label .highlight {
	color: #0066BF;
}

.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight,
.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight {
	color: #9DDDFF;
}

.vs-dark .quick-input-widget .monaco-highlighted-label .highlight,
.vs-dark .quick-input-widget .monaco-highlighted-label .highlight {
	color: #0097fb;
}

.hc-black .quick-input-widget .monaco-highlighted-label .highlight,
.hc-black .quick-input-widget .monaco-highlighted-label .highlight {
	color: #F38518;
}

.hc-light .quick-input-widget .monaco-highlighted-label .highlight,
.hc-light .quick-input-widget .monaco-highlighted-label .highlight {
	color: #0F4A85;
}

.monaco-keybinding > .monaco-keybinding-key {
	background-color: rgba(221, 221, 221, 0.4);
	border: solid 1px rgba(204, 204, 204, 0.4);
	border-bottom-color: rgba(187, 187, 187, 0.4);
	box-shadow: inset 0 -1px 0 rgba(187, 187, 187, 0.4);
	color: #555;
}

.hc-black .monaco-keybinding > .monaco-keybinding-key {
	background-color: transparent;
	border: solid 1px rgb(111, 195, 223);
	box-shadow: none;
	color: #fff;
}

.hc-light .monaco-keybinding > .monaco-keybinding-key {
	background-color: transparent;
	border: solid 1px #0F4A85;
	box-shadow: none;
	color: #292929;
}

.vs-dark .monaco-keybinding > .monaco-keybinding-key {
	background-color: rgba(128, 128, 128, 0.17);
	border: solid 1px rgba(51, 51, 51, 0.6);
	border-bottom-color: rgba(68, 68, 68, 0.6);
	box-shadow: inset 0 -1px 0 rgba(68, 68, 68, 0.6);
	color: #ccc;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.quick-input-widget {
	position: absolute;
	width: 600px;
	z-index: 2550;
	left: 50%;
	-webkit-app-region: no-drag;
	border-radius: 6px;
}

.quick-input-titlebar {
	cursor: grab;
	display: flex;
	align-items: center;
	border-top-right-radius: 5px;
	border-top-left-radius: 5px;
}

.quick-input-left-action-bar {
	display: flex;
	margin-left: 4px;
	flex: 1;
}

/* give some space between input and action bar */
.quick-input-inline-action-bar > .actions-container > .action-item:first-child {
	margin-left: 5px;
}

/* center horizontally */
.quick-input-inline-action-bar > .actions-container > .action-item {
	margin-top: 2px;
}

.quick-input-title {
	cursor: grab;
	padding: 3px 0px;
	text-align: center;
	text-overflow: ellipsis;
	overflow: hidden;
}

.quick-input-right-action-bar {
	display: flex;
	margin-right: 4px;
	flex: 1;
}

.quick-input-right-action-bar > .actions-container {
	justify-content: flex-end;
}

.quick-input-right-action-bar > .actions-container > .action-item {
	margin-left: 4px;
}

.quick-input-titlebar .monaco-action-bar .action-label.codicon {
	background-position: center;
	background-repeat: no-repeat;
	padding: 2px;
}

.quick-input-description {
	margin: 6px 6px 6px 11px;
}

.quick-input-header .quick-input-description {
	margin: 4px 2px;
	flex: 1;
}

.quick-input-header {
	cursor: grab;
	display: flex;
	padding: 6px 6px 2px 6px;
}

.quick-input-widget.hidden-input .quick-input-header {
	/* reduce margins and paddings when input box hidden */
	padding: 0;
	margin-bottom: 0;
}

.quick-input-and-message {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	min-width: 0;
	position: relative;
}

.quick-input-check-all {
	align-self: center;
	margin: 0;
}

.quick-input-widget .quick-input-header .monaco-checkbox {
	margin-top: 6px;
}

.quick-input-filter {
	flex-grow: 1;
	display: flex;
	position: relative;
}

.quick-input-box {
	flex-grow: 1;
}

.quick-input-widget.show-checkboxes .quick-input-box,
.quick-input-widget.show-checkboxes .quick-input-message {
	margin-left: 5px;
}

.quick-input-visible-count {
	position: absolute;
	left: -10000px;
}

.quick-input-count {
	align-self: center;
	position: absolute;
	right: 4px;
	display: flex;
	align-items: center;
}

.quick-input-count .monaco-count-badge {
	vertical-align: middle;
	padding: 2px 4px;
	border-radius: 2px;
	min-height: auto;
	line-height: normal;
}

.quick-input-action {
	margin-left: 6px;
}

.quick-input-action .monaco-text-button {
	font-size: 11px;
	padding: 0 6px;
	display: flex;
	height: 25px;
	align-items: center;
}

.quick-input-message {
	margin-top: -1px;
	padding: 5px;
	overflow-wrap: break-word;
}

.quick-input-message > .codicon {
	margin: 0 0.2em;
	vertical-align: text-bottom;
}

/* Links in descriptions & validations */
.quick-input-message a {
	color: inherit;
}

.quick-input-progress.monaco-progress-container {
	position: relative;
}

.quick-input-list {
	line-height: 22px;
}

.quick-input-widget.hidden-input .quick-input-list {
	margin-top: 4px;
	/* reduce margins when input box hidden */
	padding-bottom: 4px;
}

.quick-input-list .monaco-list {
	overflow: hidden;
	max-height: calc(20 * 22px);
	padding-bottom: 5px;
}

.quick-input-list .monaco-scrollable-element {
	padding: 0px 6px;
}

.quick-input-list .quick-input-list-entry {
	box-sizing: border-box;
	overflow: hidden;
	display: flex;
	padding: 0 6px;
}

.quick-input-list .quick-input-list-entry.quick-input-list-separator-border {
	border-top-width: 1px;
	border-top-style: solid;
}

.quick-input-list .monaco-list-row {
	border-radius: 3px;
}

.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border {
	border-top-style: none;
}

.quick-input-list .quick-input-list-label {
	overflow: hidden;
	display: flex;
	height: 100%;
	flex: 1;
}

.quick-input-widget .monaco-checkbox {
	margin-right: 0;
}

.quick-input-widget .quick-input-list .monaco-checkbox,
.quick-input-widget .quick-input-tree .monaco-checkbox {
	margin-top: 4px;
}

.quick-input-list .quick-input-list-icon {
	background-size: 16px;
	background-position: left center;
	background-repeat: no-repeat;
	padding-right: 6px;
	width: 16px;
	height: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.quick-input-list .quick-input-list-rows {
	overflow: hidden;
	text-overflow: ellipsis;
	display: flex;
	flex-direction: column;
	height: 100%;
	flex: 1;
	margin-left: 5px;
}

.quick-input-list .quick-input-list-rows > .quick-input-list-row {
	display: flex;
	align-items: center;
}

.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label,
.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label .monaco-icon-label-container > .monaco-icon-name-container {
	flex: 1;
	/* make sure the icon label grows within the row */
}

.quick-input-list .quick-input-list-rows > .quick-input-list-row .codicon[class*='codicon-'] {
	vertical-align: text-bottom;
}

.quick-input-list .quick-input-list-rows .monaco-highlighted-label > span {
	opacity: 1;
}

.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding {
	margin-right: 8px;
	/* separate from the separator label or scrollbar if any */
}

.quick-input-list .quick-input-list-label-meta {
	opacity: 0.7;
	line-height: normal;
	text-overflow: ellipsis;
	overflow: hidden;
}

/* preserve list-like styling instead of tree-like styling */
.quick-input-list .monaco-list .monaco-list-row .monaco-highlighted-label .highlight {
	font-weight: bold;
	background-color: unset;
	color: var(--vscode-list-highlightForeground) !important;
}

/* preserve list-like styling instead of tree-like styling */
.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight {
	color: var(--vscode-list-focusHighlightForeground) !important;
}

.quick-input-list .quick-input-list-entry .quick-input-list-separator {
	margin-right: 4px;
	/* separate from keybindings or actions */
}

.quick-input-list .quick-input-list-entry-action-bar {
	display: flex;
	flex: 0;
	overflow: visible;
}

.quick-input-list .quick-input-list-entry-action-bar .action-label {
	/*
	 * By default, actions in the quick input action bar are hidden
	 * until hovered over them or selected.
	 */
	display: none;
}

.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon {
	margin-right: 4px;
	padding: 2px;
}

.quick-input-list .quick-input-list-entry-action-bar {
	margin-top: 1px;
}

.quick-input-list .quick-input-list-entry-action-bar {
	margin-right: 4px;
	/* separate from scrollbar */
}

.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,
.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,
.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .action-label,
.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,
.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .action-label {
	display: flex;
}

.quick-input-list > .monaco-list:focus .monaco-list-row.focused {
	outline: 1px solid var(--vscode-list-focusOutline) !important;
	outline-offset: -1px;
}

.quick-input-list > .monaco-list:focus .monaco-list-row.focused .quick-input-list-entry.quick-input-list-separator-border {
	border-color: transparent;
}

/* focused items in quick pick */
.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,
.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator {
	color: inherit
}

.quick-input-list .monaco-list-row.focused .monaco-keybinding-key {
	background: none;
}

.quick-input-list .quick-input-list-separator-as-item {
	padding: 4px 6px;
	font-size: 12px;
}

/* Quick input separators as full-row item */
.quick-input-list .quick-input-list-separator-as-item .label-name {
	font-weight: 600;
}

.quick-input-list .quick-input-list-separator-as-item .label-description {
	/* Override default description opacity so we don't have a contrast ratio issue. */
	opacity: 1 !important;
}

/* Hide border when the item becomes the sticky one */
.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border {
	border-top-style: none;
}

/* Give sticky row the same padding as the scrollable list */
.quick-input-list .monaco-tree-sticky-row {
	padding: 0 5px;
}

/* Hide the twistie containers so that there isn't blank indent */
.quick-input-list .monaco-tl-twistie {
	display: none !important;
}

/* Tree */

.quick-input-tree .monaco-list {
	overflow: hidden;
	max-height: calc(20 * 22px);
	padding-bottom: 5px;
}

.quick-input-tree .quick-input-tree-entry {
	box-sizing: border-box;
	overflow: hidden;
	display: flex;
	padding: 0 6px;
}

.quick-input-tree .quick-input-tree-label {
	overflow: hidden;
	display: flex;
	height: 100%;
	flex: 1;
}

.quick-input-tree .quick-input-tree-icon {
	background-size: 16px;
	background-position: left center;
	background-repeat: no-repeat;
	padding-right: 6px;
	width: 16px;
	height: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.quick-input-tree .quick-input-tree-rows {
	overflow: hidden;
	text-overflow: ellipsis;
	display: flex;
	flex-direction: column;
	height: 100%;
	flex: 1;
	margin-left: 5px;
}

.quick-input-tree .quick-input-tree-rows > .quick-input-tree-row {
	display: flex;
	align-items: center;
}

.quick-input-tree .quick-input-tree-rows > .quick-input-tree-row .monaco-icon-label,
.quick-input-tree .quick-input-tree-rows > .quick-input-tree-row .monaco-icon-label .monaco-icon-label-container > .monaco-icon-name-container {
	flex: 1;
	/* make sure the icon label grows within the row */
}

.quick-input-tree .quick-input-tree-rows > .quick-input-tree-row .codicon[class*='codicon-'] {
	vertical-align: text-bottom;
}

.quick-input-tree .quick-input-tree-rows .monaco-highlighted-label > span {
	opacity: 1;
}

.quick-input-tree .quick-input-tree-entry-action-bar {
	display: flex;
	flex: 0;
	overflow: visible;
}

.quick-input-tree .quick-input-tree-entry-action-bar .action-label {
	/*
	 * By default, actions in the quick input action bar are hidden
	 * until hovered over them or selected.
	 */
	display: none;
}

.quick-input-tree .quick-input-tree-entry-action-bar .action-label.codicon {
	margin-right: 4px;
	padding: 2px;
}

.quick-input-tree .quick-input-tree-entry-action-bar {
	margin-top: 1px;
}

.quick-input-tree .quick-input-tree-entry-action-bar {
	margin-right: 4px;
	/* separate from scrollbar */
}

.quick-input-tree .quick-input-tree-entry .quick-input-tree-entry-action-bar .action-label.always-visible,
.quick-input-tree .quick-input-tree-entry:hover .quick-input-tree-entry-action-bar .action-label,
.quick-input-tree .quick-input-tree-entry.focus-inside .quick-input-tree-entry-action-bar .action-label,
.quick-input-tree .monaco-list-row.focused .quick-input-tree-entry-action-bar .action-label,
.quick-input-tree .monaco-list-row.passive-focused .quick-input-tree-entry-action-bar .action-label {
	display: flex;
}

.quick-input-tree > .monaco-list:focus .monaco-list-row.focused {
	outline: 1px solid var(--vscode-list-focusOutline) !important;
	outline-offset: -1px;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-progress-container {
	width: 100%;
	height: 2px;
	overflow: hidden; /* keep progress bit in bounds */
}

.monaco-progress-container .progress-bit {
	width: 2%;
	height: 2px;
	position: absolute;
	left: 0;
	display: none;
}

.monaco-progress-container.active .progress-bit {
	display: inherit;
}

.monaco-progress-container.discrete .progress-bit {
	left: 0;
	transition: width 100ms linear;
}

.monaco-progress-container.discrete.done .progress-bit {
	width: 100%;
}

.monaco-progress-container.infinite .progress-bit {
	animation-name: progress;
	animation-duration: 4s;
	animation-iteration-count: infinite;
	transform: translate3d(0px, 0px, 0px);
	animation-timing-function: linear;
}

.monaco-progress-container.infinite.infinite-long-running .progress-bit {
	/*
		The more smooth `linear` timing function can cause
		higher GPU consumption as indicated in
		https://github.com/microsoft/vscode/issues/97900 &
		https://github.com/microsoft/vscode/issues/138396
	*/
	animation-timing-function: steps(100);
}

/**
 * The progress bit has a width: 2% (1/50) of the parent container. The animation moves it from 0% to 100% of
 * that container. Since translateX is relative to the progress bit size, we have to multiple it with
 * its relative size to the parent container:
 * parent width: 5000%
 *    bit width: 100%
 * translateX should be as follow:
 *  50%: 5000% * 50% - 50% (set to center) = 2450%
 * 100%: 5000% * 100% - 100% (do not overflow) = 4900%
 */
@keyframes progress { from { transform: translateX(0%) scaleX(1) } 50% { transform: translateX(2500%) scaleX(3) } to { transform: translateX(4900%) scaleX(1) } }
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-editor .rendered-markdown kbd {
	background-color: var(--vscode-keybindingLabel-background);
	color: var(--vscode-keybindingLabel-foreground);
	border-style: solid;
	border-width: 1px;
	border-radius: 3px;
	border-color: var(--vscode-keybindingLabel-border);
	border-bottom-color: var(--vscode-keybindingLabel-bottomBorder);
	box-shadow: inset 0 -1px 0 var(--vscode-widget-shadow);
	vertical-align: middle;
	padding: 1px 3px;
}

.rendered-markdown li:has(input[type=checkbox]) {
	list-style-type: none;
}
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.monaco-component.multiDiffEditor {
	background: var(--vscode-multiDiffEditor-background);

	position: relative;

	height: 100%;
	width: 100%;

	overflow-y: hidden;

	> div {
		position: absolute;
		top: 0px;
		left: 0px;

		height: 100%;
		width: 100%;

		&.placeholder {
			visibility: hidden;

			&.visible {
				visibility: visible;
			}

			display: grid;
			place-items: center;
			place-content: center;
		}
	}

	.active {
		--vscode-multiDiffEditor-border: var(--vscode-focusBorder);
	}

	.multiDiffEntry {
		display: flex;
		flex-direction: column;
		flex: 1;
		overflow: hidden;


		.collapse-button {
			margin: 0 5px;
			cursor: pointer;

			a {
				display: block;
			}
		}

		.header {
			z-index: 1000;
			background: var(--vscode-editor-background);

			&:not(.collapsed) .header-content {
				border-bottom: 1px solid var(--vscode-sideBarSectionHeader-border);
			}

			.header-content {
				margin: 8px 0px 0px 0px;
				padding: 4px 5px;

				border-top: 1px solid var(--vscode-multiDiffEditor-border);

				display: flex;
				align-items: center;

				color: var(--vscode-foreground);
				background: var(--vscode-multiDiffEditor-headerBackground);

				&.shadow {
					box-shadow: var(--vscode-scrollbar-shadow) 0px 6px 6px -6px;
				}

				.file-path {
					display: flex;
					flex: 1;
					min-width: 0;

					.title {
						font-size: 14px;
						line-height: 22px;

						&.original {
							flex: 1;
							min-width: 0;
							text-overflow: ellipsis;
						}
					}

					.status {
						font-weight: 600;
						opacity: 0.75;
						margin: 0px 10px;
						line-height: 22px;

						/*
							TODO@hediet: move colors from git extension to core!
						&.renamed {
							color: v ar(--vscode-gitDecoration-renamedResourceForeground);
						}

						&.deleted {
							color: v ar(--vscode-gitDecoration-deletedResourceForeground);
						}

						&.added {
							color: v ar(--vscode-gitDecoration-addedResourceForeground);
						}
						*/
					}
				}

				.actions {
					padding: 0 8px;
				}
			}


		}

		.editorParent {
			flex: 1;
			display: flex;
			flex-direction: column;

			border-bottom: 1px solid var(--vscode-multiDiffEditor-border);
			overflow: hidden;
		}

		.editorContainer {
			flex: 1;
		}
	}
}
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.27"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}
/**
 * 디자인 시스템 토큰
 *
 * 변경 시 docs/design-system/tokens.md 도 함께 수정.
 * 색상 raw hex/rgb 사용 금지 (이 파일과 style.css 제외) — npm run lint:tokens 로 검사.
 *
 * 기존 style.css 의 토큰(--primary-color, --text-*, --surface-*, --border-color 등)은
 * 그대로 유지하고, 이 파일은 빠져 있던 토큰만 추가한다.
 */

:root {
  /* === Spacing (4px 베이스, rem 단위) === */
  --space-0: 0;
  --space-1: 0.25rem;   /*  4px */
  --space-2: 0.5rem;    /*  8px — 가장 흔함 */
  --space-3: 0.75rem;   /* 12px */
  --space-4: 1rem;      /* 16px */
  --space-5: 1.25rem;   /* 20px */
  --space-6: 1.5rem;    /* 24px */
  --space-8: 2rem;      /* 32px */
  --space-10: 2.5rem;   /* 40px */
  --space-12: 3rem;     /* 48px */

  /* === 페이지/탭 콘텐츠 여백 (상단·좌·우 공통) ===
     설정 탭 등 콘텐츠의 상단·좌·우 여백을 이 토큰 하나로 통일.
     데스크탑 1rem, 좁은 화면(≤768px) 0.5rem 으로 축소. */
  --page-pad-x: 1rem;

  /* === Border radius === */
  --radius-sm: 4px;
  --radius-md: 6px;     /* 기본 — 입력/버튼/카드 */
  --radius-lg: 12px;    /* 모달/큰 카드 */
  --radius-xl: 16px;
  --radius-full: 999px; /* pill / 원형 */

  /* === Font sizes (12px 기본) === */
  --font-xs: 0.75rem;     /* 12px — 본문 기본 */
  --font-sm: 0.8125rem;   /* 13px */
  --font-md: 0.875rem;    /* 14px */
  --font-base: 1rem;      /* 16px */
  --font-lg: 1.125rem;    /* 18px */
  --font-xl: 1.25rem;     /* 20px */
  --font-2xl: 1.5rem;     /* 24px */

  /* === Font weights === */
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* === Line heights === */
  --line-tight: 1.25;
  --line-normal: 1.5;
  --line-relaxed: 1.7;

  /* === 의미 색상 (테마 무관 — 상태 표현) === */
  --color-danger: #ef4444;
  --color-danger-hover: #dc2626;
  --color-warning: #f59e0b;
  --color-warning-hover: #d97706;
  --color-info: #3b82f6;
  --color-info-hover: #2563eb;
  --color-success: #22c55e;
  --color-success-hover: #16a34a;
  /* --primary-color, --primary-hover, --success-color 는 style.css 에 정의됨 */

  /* === 분류 강조색 (status 외 카테고리 구분 — 뱃지·라벨·차트) === */
  --color-purple: #a855f7;
  --color-indigo: #6366f1;
  --color-orange: #f97316;
  --color-cyan: #06b6d4;
  --color-pink: #ec4899;
  --color-lime: #84cc16;

  /* === 고정 브랜드색 (외부 규정 — 리테마 대상 아님) === */
  --brand-kakao: #fee500;

  /* === 장식색 (일러스트 — 책 메타포) === */
  --deco-book-page: #f5efdc;
  --deco-book-page-line: #d8cfb2;

  /* === 상태 표면 (테마 의존 — 다크 기본) === */
  --surface-hover: rgba(255, 255, 255, 0.04);
  --surface-active: rgba(255, 255, 255, 0.08);
  /* 목록 테이블 교대 행(zebra) 배경 — 검은 배경 위에서 또렷이 보이는 수준 */
  --surface-stripe: rgba(255, 255, 255, 0.05);

  /* === 의미색 연한 배경 (뱃지·알림 박스 틴트·선택 칩) === */
  --surface-primary-soft: rgba(16, 185, 129, 0.12);
  --surface-warning-soft: rgba(245, 158, 11, 0.15);
  --surface-danger-soft: rgba(239, 68, 68, 0.10);
  --surface-info-soft: rgba(59, 130, 246, 0.12);
  --surface-success-soft: rgba(34, 197, 94, 0.12);
  --surface-purple-soft: rgba(168, 85, 247, 0.12);
  --surface-indigo-soft: rgba(99, 102, 241, 0.12);
  --surface-orange-soft: rgba(249, 115, 22, 0.12);
  --surface-cyan-soft: rgba(6, 182, 212, 0.12);
  --surface-pink-soft: rgba(236, 72, 153, 0.12);
  --surface-lime-soft: rgba(132, 204, 22, 0.12);

  /* === 중립 경계선 (slate 반투명 — 테마 무관, 미세 구분선) === */
  --border-subtle: rgba(148, 163, 184, 0.15);

  /* === 스크롤바 (테마 의존 — 다크 기본) === */
  --scrollbar-thumb: #4a5568;
  --scrollbar-thumb-hover: #718096;
  --scrollbar-track: rgba(255, 255, 255, 0.05);

  /* === 고정색 — 컬러/accent 배경 위 텍스트·아이콘 (테마 무관) === */
  --color-white: #ffffff;
  --color-black: #000000;

  /* === RGB 트리플 — 투명도 변종용 (rgba(var(--xxx-rgb), α)) ===
     의미색의 반투명 테두리·오버레이·glow 를 토큰 기반으로 표현. 색상값은
     위 hex 토큰과 동기 유지할 것. */
  --primary-rgb: 16, 185, 129;
  --color-success-rgb: 34, 197, 94;
  --color-indigo-rgb: 99, 102, 241;
  --color-white-rgb: 255, 255, 255;

  /* === 포커스 링 === */
  --ring-focus: 0 0 0 3px rgba(16, 185, 129, 0.18);
  --ring-danger: 0 0 0 3px rgba(239, 68, 68, 0.18);

  /* === Shadows === */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.18);
  --shadow-lg: 0 8px 20px rgba(0, 0, 0, 0.25);
  --shadow-modal: 0 18px 45px rgba(15, 23, 42, 0.45);

  /* === Z-index 단계 === */
  --z-dropdown: 1000;
  --z-sticky: 1020;
  /* 좌/우 분할 분리대(드래그 핸들 + < = > 토글 버튼).
     - sticky 헤더(1020) 의 negative margin 이 분리대를 덮지 않도록 그보다 위
     - 단 앱 크롬(--z-fixed=1030)보다는 아래 — 안 그러면 탑바 드롭다운이 분리대 뒤로 깔림 */
  --z-splitter: 1021;
  --z-fixed: 1030;
  /* 분할 드래그 중 iframe/PDF 가 마우스 이벤트 가로채지 못하게 깔리는 overlay.
     반드시 --z-splitter 보다 낮아야 한다 — 그렇지 않으면 mousedown 직후 Vue 리렌더로
     overlay 가 < = > 버튼 위를 덮어, mouseup 이 overlay 에서 발생 → click 이 공통 조상에서
     fire 되어 버튼 @click 이 호출되지 않는 회귀가 발생한다 (#2026-05-21 발견). */
  --z-resize-overlay: 5;
  --z-modal-backdrop: 9000;
  --z-modal: 10000;
  --z-popover: 11000;
  --z-toast: 12000;
  --z-tooltip: 13000;

  /* === 전환 === */
  --transition-fast: 0.12s ease;
  --transition-base: 0.2s ease;
  --transition-slow: 0.3s ease;

  /* === 백드롭 === */
  --backdrop-bg: rgba(15, 23, 42, 0.55);
  --backdrop-blur: blur(4px);

  /* === 컴포넌트 크기 (버튼/입력 통일) === */
  --control-height-xs: 22px;
  --control-height-sm: 26px;
  --control-height-md: 32px;
  --control-height-lg: 40px;
  --control-padding-x-xs: var(--space-1);
  --control-padding-x-sm: var(--space-2);
  --control-padding-x-md: var(--space-3);
  --control-padding-x-lg: var(--space-4);

  /* 앱 셸 상단 바 높이 — 탑바(Topbar)와 사이드바 헤더(Sidebar header)가
     공유해 두 영역의 아래 구분선이 같은 높이에서 만나도록 한다. */
  --app-header-height: 57px;

  /* === 목록 화면 (list-screen) === */
  /* 테이블 행은 고정 높이. (카드는 내용에 따른 가변 높이 — 측정형 가상 스크롤) */
  --list-row-h: 44px;
}

/* 페이지 여백 — 좁은 화면에서 축소 */
@media (max-width: 768px) {
  :root {
    --page-pad-x: 0.5rem;
  }
}

/* 라이트 테마 오버라이드 */
html[data-theme='light'],
body[data-theme='light'] {
  --surface-hover: rgba(15, 23, 42, 0.04);
  --surface-active: rgba(15, 23, 42, 0.08);
  --surface-stripe: rgba(15, 23, 42, 0.04);

  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.10);
  --shadow-lg: 0 8px 20px rgba(15, 23, 42, 0.15);
  --shadow-modal: 0 18px 45px rgba(15, 23, 42, 0.18);

  --backdrop-bg: rgba(15, 23, 42, 0.35);

  --scrollbar-thumb: #cbd5e1;
  --scrollbar-thumb-hover: #94a3b8;
  --scrollbar-track: rgba(15, 23, 42, 0.04);
}

.app-btn[data-v-78824fee] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  height: var(--control-height-md);
  padding: 0 var(--control-padding-x-md);
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--text-primary);
  font-family: inherit;
  font-size: var(--font-md);
  font-weight: var(--font-weight-medium);
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--transition-base), border-color var(--transition-base), color var(--transition-base), filter var(--transition-base), box-shadow var(--transition-base);
  user-select: none;
}
.app-btn[data-v-78824fee]:focus-visible {
  outline: none;
  box-shadow: var(--ring-focus);
}
.app-btn[data-v-78824fee]:disabled,
.app-btn--loading[data-v-78824fee] {
  opacity: 0.6;
  cursor: not-allowed;
}

/* === Sizes === */
/* xs — 툴바·카드 모서리 등 고밀도 영역의 소형 버튼 (주로 icon-only) */
.app-btn--xs[data-v-78824fee] {
  height: var(--control-height-xs);
  padding: 0 var(--control-padding-x-xs);
  font-size: var(--font-xs);
  gap: var(--space-1);
}
.app-btn--sm[data-v-78824fee] {
  height: var(--control-height-sm);
  padding: 0 var(--control-padding-x-sm);
  font-size: var(--font-sm);
  gap: var(--space-1);
}
.app-btn--lg[data-v-78824fee] {
  height: var(--control-height-lg);
  padding: 0 var(--control-padding-x-lg);
  font-size: var(--font-base);
}
.app-btn--block[data-v-78824fee] {
  display: flex;
  width: 100%;
}

/* 폼 필드형 트리거 — 라벨 왼쪽(말줄임) + 아이콘 오른쪽 끝. block 과 함께 쓴다. */
.app-btn--align-between[data-v-78824fee] { justify-content: space-between;
}
.app-btn--align-between .app-btn__label[data-v-78824fee] {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: left;
}
.app-btn--icon-only[data-v-78824fee] {
  padding: 0;
  width: var(--control-height-md);
  aspect-ratio: 1;
}
.app-btn--icon-only.app-btn--xs[data-v-78824fee] { width: var(--control-height-xs);
}
.app-btn--icon-only.app-btn--sm[data-v-78824fee] { width: var(--control-height-sm);
}
.app-btn--icon-only.app-btn--lg[data-v-78824fee] { width: var(--control-height-lg);
}

/* === Variants === */
.app-btn--primary[data-v-78824fee] {
  background: var(--primary-color);
  color: var(--color-white);
}
/* hover: 밝기 + 그림자 — brightness(1.05) 만으론 다크 테마에서 거의 안 보였음 */
.app-btn--primary[data-v-78824fee]:not(:disabled):hover {
  filter: brightness(1.12);
  box-shadow: 0 2px 8px rgba(var(--primary-rgb), 0.35);
}
.app-btn--primary[data-v-78824fee]:not(:disabled):active {
  filter: brightness(0.95);
  box-shadow: none;
}
.app-btn--secondary[data-v-78824fee] {
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  border-color: var(--border-color);
}
/* hover: 테두리를 primary 색으로 강조 + 약간 밝게. surface-hover(rgba 0.04) 만으론 변화 미미 */
.app-btn--secondary[data-v-78824fee]:not(:disabled):hover {
  background: var(--surface-hover);
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.app-btn--secondary[data-v-78824fee]:not(:disabled):active {
  background: var(--surface-active);
}
.app-btn--ghost[data-v-78824fee] {
  background: transparent;
  color: var(--text-secondary);
}
.app-btn--ghost[data-v-78824fee]:not(:disabled):hover {
  background: var(--surface-hover);
  color: var(--text-primary);
}
.app-btn--danger[data-v-78824fee] {
  background: var(--color-danger);
  color: var(--color-white);
}
.app-btn--danger[data-v-78824fee]:not(:disabled):hover {
  background: var(--color-danger-hover);
}
.app-btn--danger[data-v-78824fee]:focus-visible {
  box-shadow: var(--ring-danger);
}

/* ghost-danger — 평소엔 ghost 처럼 잔잔하고, 위험 색은 hover 에서만 드러나는 파괴적 액션용 (행 모서리 삭제 아이콘 등) */
.app-btn--ghost-danger[data-v-78824fee] {
  background: transparent;
  color: var(--text-secondary);
}
.app-btn--ghost-danger[data-v-78824fee]:not(:disabled):hover {
  background: var(--surface-danger-soft);
  color: var(--color-danger-hover);
}
.app-btn--ghost-danger[data-v-78824fee]:focus-visible {
  box-shadow: var(--ring-danger);
}

/* === Active (토글 켜짐 상태) === */
.app-btn--secondary.app-btn--active[data-v-78824fee] {
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.app-btn--ghost.app-btn--active[data-v-78824fee] {
  background: var(--surface-active);
  color: var(--primary-color);
}

/* === Spinner === */
.app-btn__spinner[data-v-78824fee] {
  width: 0.875em;
  height: 0.875em;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: var(--radius-full);
  animation: app-btn-spin-78824fee 0.7s linear infinite;
}
@keyframes app-btn-spin-78824fee {
to { transform: rotate(360deg);
}
}
.app-btn__label[data-v-78824fee] {
  display: inline-flex;
  align-items: center;
  /* 행 전체를 채우는 버튼에서 라벨이 줄어들 수 있어야 truncate/줄바꿈이 동작한다 */
  min-width: 0;
}

/* 아이콘 슬롯 안의 일반 아이콘 폰트 사이즈 정렬 */
.app-btn i[data-v-78824fee-s],
.app-btn .material-symbols-rounded[data-v-78824fee-s] {
  font-size: 1.1em;
  line-height: 1;
}

.rich-text-editor[data-v-3fe723f7] {
  border-radius: var(--radius-md, 6px);
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  overflow: hidden;
}
.rich-text-editor--disabled[data-v-3fe723f7] {
  opacity: 0.6;
  pointer-events: none;
}
.rich-text-editor__toolbar[data-v-3fe723f7] {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 6px 8px;
  background: var(--surface-color-secondary);
  border-bottom: 1px solid var(--border-color);
  flex-wrap: wrap;
}
.rich-text-editor__toolbar button[data-v-3fe723f7] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.85rem;
  transition: background 0.15s ease, color 0.15s ease;
}
.rich-text-editor__toolbar button[data-v-3fe723f7]:hover {
  background: var(--surface-hover);
  color: var(--primary-color);
}
.rich-text-editor__toolbar button.is-active[data-v-3fe723f7] {
  background: var(--surface-primary-soft);
  color: var(--primary-color);
}
.rich-text-editor__toolbar button[data-v-3fe723f7]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.rich-text-editor__divider[data-v-3fe723f7] {
  width: 1px;
  height: 18px;
  background: var(--border-color);
  margin: 0 4px;
}
.rich-text-editor__content[data-v-3fe723f7] .tiptap {
  min-height: 100px;
  max-height: 400px;
  overflow-y: auto;
  padding: 10px 12px;
  color: var(--text-primary);
  font: inherit;
  font-size: var(--font-md);
  line-height: 1.5;
  outline: none;
}

/* iOS Safari 는 포커스된 편집 영역의 computed font-size 가 16px 미만이면
   자동으로 화면을 확대한다. 터치 디바이스에선 본문을 16px 로 키워 회피. */
@media (pointer: coarse) {
.rich-text-editor__content[data-v-3fe723f7] .tiptap {
    font-size: 16px;
}
}
.rich-text-editor__content[data-v-3fe723f7] .tiptap p.is-editor-empty:first-child::before {
  content: attr(data-placeholder);
  color: var(--text-tertiary, var(--text-secondary));
  float: left;
  height: 0;
  pointer-events: none;
}
.rich-text-editor__content[data-v-3fe723f7] .tiptap p {
  margin: 0 0 0.5em;
}
.rich-text-editor__content[data-v-3fe723f7] .tiptap ul,
.rich-text-editor__content[data-v-3fe723f7] .tiptap ol {
  padding-left: 1.25rem;
  margin: 0.25em 0;
}
.rich-text-editor__content[data-v-3fe723f7] .tiptap blockquote {
  border-left: 3px solid var(--border-color);
  padding-left: 0.75rem;
  margin: 0.5em 0;
  color: var(--text-secondary);
}
.rich-text-editor__content[data-v-3fe723f7] .tiptap pre {
  background: var(--surface-muted);
  border-radius: 4px;
  padding: 0.5rem 0.75rem;
  margin: 0.5em 0;
  font-family: 'Fira Code', 'Consolas', monospace;
  font-size: 0.85em;
}
.rich-text-editor__content[data-v-3fe723f7] .tiptap code {
  background: var(--surface-muted);
  border-radius: 3px;
  padding: 0.15em 0.3em;
  font-size: 0.9em;
}
.rich-text-editor__content[data-v-3fe723f7] .tiptap a {
  color: var(--primary-color);
  text-decoration: underline;
}
.rich-text-editor__content[data-v-3fe723f7] .tiptap img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  margin: 0.5em 0;
}

.app-modal-overlay[data-v-9eaa79f0] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: var(--z-modal);
  padding: var(--space-4);
}
.app-modal[data-v-9eaa79f0] {
  width: 100%;
  max-height: calc(100dvh - var(--space-8));
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
  outline: none;
  overflow: hidden;
}
.app-modal--sm[data-v-9eaa79f0] { max-width: 360px;
}
.app-modal--md[data-v-9eaa79f0] { max-width: 480px;
}
.app-modal--lg[data-v-9eaa79f0] { max-width: 720px;
}
.app-modal--xl[data-v-9eaa79f0] { max-width: 960px;
}
.app-modal__header[data-v-9eaa79f0] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5) var(--space-2);
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}
.app-modal__title[data-v-9eaa79f0] {
  margin: 0;
  font-size: var(--font-base);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  flex: 1;
  min-width: 0;
}
.app-modal__close[data-v-9eaa79f0] {
  flex-shrink: 0;
}
.app-modal__body[data-v-9eaa79f0] {
  padding: var(--space-3) var(--space-5) var(--space-4);
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}
.app-modal__body--no-padding[data-v-9eaa79f0] {
  padding: 0;
}
.app-modal__footer[data-v-9eaa79f0] {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-5) var(--space-4);
  border-top: 1px solid var(--border-color);
  flex-shrink: 0;
}

/* === Transition === */
.app-modal-enter-active[data-v-9eaa79f0],
.app-modal-leave-active[data-v-9eaa79f0] {
  transition: opacity var(--transition-base);
}
.app-modal-enter-active .app-modal[data-v-9eaa79f0],
.app-modal-leave-active .app-modal[data-v-9eaa79f0] {
  transition: transform var(--transition-base), opacity var(--transition-base);
}
.app-modal-enter-from[data-v-9eaa79f0],
.app-modal-leave-to[data-v-9eaa79f0] {
  opacity: 0;
}
.app-modal-enter-from .app-modal[data-v-9eaa79f0],
.app-modal-leave-to .app-modal[data-v-9eaa79f0] {
  opacity: 0;
  transform: translateY(8px) scale(0.98);
}
@media (max-width: 480px) {
.app-modal-overlay[data-v-9eaa79f0] {
    padding: var(--space-3);
}
}

.app-input[data-v-3685a6f9] {
  box-sizing: border-box;
  width: 100%;
  height: var(--control-height-md);
  padding: 0 var(--control-padding-x-md);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--surface-color);
  color: var(--text-primary);
  font-family: inherit;
  font-size: var(--font-md);
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}
.app-input[data-v-3685a6f9]::placeholder {
  color: var(--text-tertiary);
}
.app-input[data-v-3685a6f9]:focus-visible {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.app-input[data-v-3685a6f9]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  background: var(--surface-muted);
}
.app-input[readonly][data-v-3685a6f9] {
  background: var(--surface-muted);
}

/* 유효성 오류 */
.app-input--invalid[data-v-3685a6f9] {
  border-color: var(--color-danger);
}
.app-input--invalid[data-v-3685a6f9]:focus-visible {
  box-shadow: var(--ring-danger);
}

.service-desk-dialog__guide[data-v-baa4983b] {
  margin: 0 0 var(--space-3);
  font-size: var(--font-md);
  color: var(--text-secondary);
  line-height: var(--line-normal);
  padding: var(--space-2) var(--space-3);
  background: var(--surface-muted);
  border-radius: var(--radius-md);
  border-left: 3px solid var(--primary-color);
}
.service-desk-dialog__field[data-v-baa4983b] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}
.service-desk-dialog__label[data-v-baa4983b] {
  font-size: var(--font-md);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
}
.service-desk-dialog__hint[data-v-baa4983b] {
  margin: var(--space-1) 0 0;
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  line-height: var(--line-normal);
}

/* 헤더 — 브랜드(좌) + 버전 뱃지(우). AppModal 헤더 슬롯 안에서 폭 채움. */
.about__head[data-v-02d532fe] {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-3);
}
.about__title[data-v-02d532fe] {
  margin: 0;
  font-size: var(--font-lg);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
}
.about__version[data-v-02d532fe] {
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--primary-color);
  background: var(--surface-primary-soft);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-md);
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: var(--space-1);
}
.about__env[data-v-02d532fe] {
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-warning);
  background: var(--surface-warning-soft);
  padding: 2px var(--space-1);
  border-radius: var(--radius-sm);
}
.about__copyright[data-v-02d532fe] {
  margin: 0 0 var(--space-3);
  font-size: var(--font-sm);
  color: var(--text-secondary);
}
.about__section[data-v-02d532fe] {
  display: flex;
  flex-direction: column;
}

/* 아코디언 토글 — AppButton(ghost) 위에 섹션 헤더 모양만 보정 */
.about__section-toggle[data-v-02d532fe] {
  font-weight: var(--font-weight-medium);
}
.about__section-toggle[data-v-02d532fe] .app-btn__label {
  gap: var(--space-2);
}
.about__section-label[data-v-02d532fe] {
  color: var(--text-primary);
}
.about__badge[data-v-02d532fe] {
  font-size: var(--font-xs);
  background: var(--surface-muted);
  padding: 2px var(--space-1);
  border-radius: var(--radius-sm);
  color: var(--text-secondary);
}
.about__licenses[data-v-02d532fe] {
  margin-top: var(--space-2);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  max-height: 400px;
  overflow-y: auto;
  padding-right: var(--space-1);
}
.about__license-notice[data-v-02d532fe] {
  margin: 0;
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  line-height: var(--line-normal);
  padding: var(--space-2) var(--space-3);
  background: var(--surface-muted);
  border-radius: var(--radius-md);
  border-left: 3px solid var(--primary-color);
}
.about__license-group[data-v-02d532fe] {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.about__license-type[data-v-02d532fe] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}
.about__license-badge[data-v-02d532fe] {
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
  background: var(--surface-primary-soft);
  color: var(--primary-color);
  padding: 2px var(--space-2);
  border-radius: var(--radius-sm);
}
.about__license-count[data-v-02d532fe] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.about__license-items[data-v-02d532fe] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  padding-left: var(--space-1);
}
.about__license-item[data-v-02d532fe] {
  font-size: var(--font-xs);
  color: var(--text-secondary);
  background: var(--surface-muted);
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-sm);
  white-space: nowrap;
}
.about__license-ver[data-v-02d532fe] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}

.message-popup__message[data-v-443c9eb5] {
  margin: 0;
  font-size: var(--font-md);
  line-height: var(--line-normal);
  color: var(--text-secondary);
  white-space: pre-line;
}

.app-checkbox[data-v-d9b2fd3c] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  cursor: pointer;
  user-select: none;
}
.app-checkbox--disabled[data-v-d9b2fd3c] {
  opacity: 0.6;
  cursor: not-allowed;
}

/* 네이티브 입력은 숨기되 접근성·포커스는 유지 */
.app-checkbox__input[data-v-d9b2fd3c] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  margin: 0;
}
.app-checkbox__box[data-v-d9b2fd3c] {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  background: var(--surface-color);
  color: var(--color-white);
  font-size: var(--font-xs);
  transition: background var(--transition-base), border-color var(--transition-base);
}

/* 체크/부분선택 시 primary 채움 */
.app-checkbox__input:checked + .app-checkbox__box[data-v-d9b2fd3c],
.app-checkbox__input:indeterminate + .app-checkbox__box[data-v-d9b2fd3c] {
  background: var(--primary-color);
  border-color: var(--primary-color);
}
.app-checkbox__input:focus-visible + .app-checkbox__box[data-v-d9b2fd3c] {
  box-shadow: var(--ring-focus);
}
.app-checkbox__label[data-v-d9b2fd3c] {
  font-size: var(--font-md);
  color: var(--text-primary);
}

.confirm-overlay[data-v-cdb31ce3] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 99999;
}
.confirm-dialog[data-v-cdb31ce3] {
  width: 100%;
  max-width: 420px;
  margin: 0 1rem;
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
}
.confirm-dialog__header[data-v-cdb31ce3] {
  padding: 1rem 1.25rem 0.5rem;
  border-bottom: 1px solid var(--border-subtle);
}
.confirm-dialog__title[data-v-cdb31ce3] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.confirm-dialog__body[data-v-cdb31ce3] {
  padding: 0.75rem 1.25rem 1rem;
}
.confirm-dialog__message[data-v-cdb31ce3] {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--text-secondary);
  white-space: pre-line;
}
.confirm-dialog__description[data-v-cdb31ce3] {
  margin-top: 0.75rem;
  padding: 0.625rem 0.75rem;
  background: var(--surface-muted);
  border-radius: 6px;
  font-size: 0.8rem;
  line-height: 1.6;
  color: var(--text-secondary);
  white-space: pre-line;
}
.confirm-dialog__input-area[data-v-cdb31ce3] {
  margin-top: 0.75rem;
}
.confirm-dialog__input-label[data-v-cdb31ce3] {
  display: block;
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-bottom: 0.375rem;
}
.confirm-dialog__input[data-v-cdb31ce3] {
  width: 100%;
  padding: 0.4rem 0.625rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--surface-muted);
  color: var(--text-primary);
  font-size: 0.85rem;
  outline: none;
  box-sizing: border-box;
}
.confirm-dialog__input[data-v-cdb31ce3]:focus {
  border-color: var(--primary-color);
}
.confirm-dialog__checkbox-label[data-v-cdb31ce3] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.75rem;
  font-size: 0.85rem;
  color: var(--text-secondary);
  cursor: pointer;
  user-select: none;
}
.confirm-dialog__checkbox-label input[type="checkbox"][data-v-cdb31ce3] {
  margin: 0;
  cursor: pointer;
}
.confirm-dialog__footer[data-v-cdb31ce3] {
  padding: 0.75rem 1.25rem 1rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

/* confirmHref <a> 링크 버튼 — native <a> 이므로 AppButton 으로 대체 불가 */
.confirm-dialog__btn--confirm[data-v-cdb31ce3] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 80px;
  padding: 0.4rem 0.9rem;
  border-radius: 6px;
  border: 1px solid transparent;
  font-size: 0.85rem;
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none;
  background: var(--primary-color);
  color: var(--color-white);
}
.confirm-dialog__btn--confirm[data-v-cdb31ce3]:hover {
  filter: brightness(1.05);
}
@media (max-width: 480px) {
.confirm-dialog[data-v-cdb31ce3] {
    margin: 0 0.75rem;
}
}

.toast-container[data-v-aa0fc7a8] {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1.25rem;
  background: var(--surface-muted);
  border: 1px solid var(--border-color);
  border-radius: 999px;
  box-shadow: var(--shadow-md);
  z-index: 10000;
  min-width: 300px;
  max-width: 90vw;
  backdrop-filter: blur(8px);
}
.toast-container.success[data-v-aa0fc7a8] { border-color: var(--success-color);
}
.toast-container.error[data-v-aa0fc7a8] { border-color: var(--color-danger);
}
.toast-container.warning[data-v-aa0fc7a8] { border-color: var(--color-warning);
}
.icon[data-v-aa0fc7a8] {
  font-size: 1.25rem;
}
.success .icon[data-v-aa0fc7a8] { color: var(--success-color);
}
.error .icon[data-v-aa0fc7a8] { color: var(--color-danger);
}
.warning .icon[data-v-aa0fc7a8] { color: var(--color-warning);
}
.info .icon[data-v-aa0fc7a8] { color: var(--primary-color);
}
.message[data-v-aa0fc7a8] {
  flex: 1;
  font-size: 0.9375rem;
  color: var(--text-primary);
  white-space: pre-wrap;
}
.toast-enter-active[data-v-aa0fc7a8],
.toast-leave-active[data-v-aa0fc7a8] {
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.toast-enter-from[data-v-aa0fc7a8],
.toast-leave-to[data-v-aa0fc7a8] {
  opacity: 0;
  transform: translate(-50%, 1rem);
}

.sidebar[data-v-3a9e55f7] {
  width: 220px !important;
  flex: 0 0 220px !important;
  background: var(--surface-color);
  border-right: 1px solid var(--border-color);
  display: flex;
  flex-direction: column;
  transition: width 0.2s ease;
}
.sidebar--collapsed[data-v-3a9e55f7] {
  width: 64px !important;
  flex: 0 0 64px !important;
}
.sidebar__header[data-v-3a9e55f7] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* 탑바와 같은 높이 — 아래 구분선이 한 줄로 맞는다 */
  min-height: var(--app-header-height);
  padding: 0.75rem 1.25rem;
  border-bottom: 1px solid var(--border-color);
}
.sidebar__brand[data-v-3a9e55f7] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-weight: 600;
  min-width: 0;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.2s ease;
}
.sidebar__brand[data-v-3a9e55f7]:hover {
  opacity: 0.8;
}
.sidebar__brand-name[data-v-3a9e55f7] {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sidebar__brand-badge[data-v-3a9e55f7] {
  width: 32px;
  height: 32px;
  border-radius: 0;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}
.sidebar__brand-icon[data-v-3a9e55f7] {
  width: 32px;
  height: 32px;
}
.sidebar__brand-icon--bounce[data-v-3a9e55f7] {
  animation: logoBounce-3a9e55f7 2s;
}
.sidebar__brand-icon--pulse[data-v-3a9e55f7] {
  animation: logoPulse-3a9e55f7 0.3s ease;
}
@keyframes logoBounce-3a9e55f7 {
0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
}
40% {
    transform: translateY(-10px);
}
60% {
    transform: translateY(-5px);
}
}
@keyframes logoPulse-3a9e55f7 {
0% {
    transform: scale(1);
}
50% {
    transform: scale(1.15);
}
100% {
    transform: scale(1);
}
}
.sidebar__toggle-icon[data-v-3a9e55f7] {
  display: inline-block;
  transition: transform 0.2s;
}
.sidebar__toggle-icon--flipped[data-v-3a9e55f7] {
  transform: scaleX(-1);
}
.sidebar__body[data-v-3a9e55f7] {
  flex: 1;
  padding: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  overflow-y: auto;
  overflow-x: hidden; /* Revert to hidden since we use Teleport */
}
.sidebar__item[data-v-3a9e55f7] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 0.85rem;
  border-radius: 0.65rem;
  color: var(--text-secondary);
  /* cursor: pointer added in hover styles */
}
.sidebar__item[data-v-3a9e55f7]:hover {
  background: var(--surface-muted);
  color: var(--text-primary);
}
.sidebar__item--active[data-v-3a9e55f7] {
  background: var(--surface-muted);
  color: var(--primary-color);
  font-weight: 600;
  position: relative;
}
.sidebar__item--active[data-v-3a9e55f7]::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--primary-color);
  border-radius: 0 2px 2px 0;
}
.sidebar__icon[data-v-3a9e55f7] {
  font-size: 1.35rem;
  transition: transform 0.3s ease;
}
.sidebar__icon--animate[data-v-3a9e55f7] {
  animation: iconPulse-3a9e55f7 0.3s ease;
}
.sidebar__icon--streaming[data-v-3a9e55f7] {
  animation: iconStreaming-3a9e55f7 1.2s ease-in-out infinite;
  color: var(--primary-color);
  filter: drop-shadow(0 0 4px var(--primary-color));
}
@keyframes iconStreaming-3a9e55f7 {
0%, 100% {
    opacity: 1;
    transform: scale(1);
    filter: drop-shadow(0 0 4px var(--primary-color));
}
50% {
    opacity: 0.3;
    transform: scale(1.15);
    filter: drop-shadow(0 0 8px var(--primary-color));
}
}
@keyframes iconPulse-3a9e55f7 {
0% {
    transform: scale(1);
}
50% {
    transform: scale(1.15);
}
100% {
    transform: scale(1);
}
}
.sidebar__category[data-v-3a9e55f7] {
  padding: 0 0.85rem 0.125rem;
  margin-top: 0;
  padding-top: 0.5rem;
}
.sidebar__category[data-v-3a9e55f7]:first-child {
  margin-top: 0;
  padding-top: 0;
}
.sidebar__category-label[data-v-3a9e55f7] {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-tertiary, var(--text-secondary));
  opacity: 0.7;
  user-select: none;
}
.sidebar__divider[data-v-3a9e55f7] {
  height: 1px;
  background: var(--border-color);
  margin: 0.5rem 0.75rem;
}
.sidebar__skeleton[data-v-3a9e55f7] {
  height: 38px;
  border-radius: 0.65rem;
  background: var(--surface-muted);
  animation: pulse-3a9e55f7 1.5s infinite ease-in-out;
}
@keyframes pulse-3a9e55f7 {
0% {
    opacity: 0.6;
}
50% {
    opacity: 1;
}
100% {
    opacity: 0.6;
}
}
@media (max-width: 768px) {
.sidebar[data-v-3a9e55f7] {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    z-index: 1000;
    width: 260px !important;
    flex: 0 0 260px !important;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
    border-right: 1px solid var(--border-color);
    box-shadow: var(--shadow-md);
}
.sidebar[data-v-3a9e55f7]:not(.sidebar--collapsed) {
    transform: translateX(0);
}
.sidebar--collapsed[data-v-3a9e55f7] {
    transform: translateX(-100%);
    width: 260px !important;
    flex: 0 0 260px !important;
}
}

/* Tooltip global styles */

/* Global style for teleported tooltip */
.sidebar-tooltip {
  position: fixed;
  z-index: 9999;
  transform: translateY(-50%);
  background: var(--surface-color);
  color: var(--text-primary);
  padding: 0.5rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid var(--border-color);
  font-size: 0.85rem;
  white-space: nowrap;
  box-shadow: var(--shadow-sm);
  pointer-events: none;
  font-weight: 500;
}

/* Dark mode support if variables are not enough */
:root[class~="dark"] .sidebar-tooltip {
  background: var(--surface-color);
  color: var(--text-primary);
  border-color: var(--border-color);
}

.dm-notify-overlay[data-v-7922ec0c] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2500;
}
.dm-notify[data-v-7922ec0c] {
  background: var(--surface-color);
  border-radius: 0.75rem;
  padding: 1.5rem;
  max-width: 360px;
  width: 90%;
  text-align: center;
  box-shadow: var(--shadow-lg);
}
.dm-notify__icon[data-v-7922ec0c] {
  font-size: 2rem;
  color: var(--primary-color);
  margin-bottom: 0.75rem;
}
.dm-notify__body h4[data-v-7922ec0c] {
  margin: 0 0 0.375rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.dm-notify__body p[data-v-7922ec0c] {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-secondary);
}
.dm-notify__actions[data-v-7922ec0c] {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1.25rem;
}
.dm-notify--urgent[data-v-7922ec0c] {
  border: 2px solid var(--color-warning);
  animation: urgent-pulse-7922ec0c 1.5s ease-in-out 3;
}
@keyframes urgent-pulse-7922ec0c {
0%, 100% { box-shadow: 0 0 0 0 transparent;
}
50% { box-shadow: 0 0 0 8px var(--surface-warning-soft);
}
}

.topbar[data-v-3ce78390] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* 사이드바 헤더와 같은 높이 — 아래 구분선이 한 줄로 맞는다 */
  min-height: var(--app-header-height);
  padding: 0.75rem 1.25rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
  backdrop-filter: blur(10px);
  position: sticky;
  top: 0;
  /* 페이지 컨텐츠의 sticky 헤더(--z-sticky: 1020)보다 위에 와야 함 */
  z-index: var(--z-fixed, 1030);
}
.topbar__left[data-v-3ce78390] {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex: 1 1 auto;
  min-width: 0; /* 오른쪽 컨트롤을 밀지 않고, 왼쪽 영역이 먼저 줄어들도록 허용 */
}
.topbar__title[data-v-3ce78390] {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0; /* flex 컨테이너 안에서 ellipsis가 동작하도록 최소 너비 제한 */
}
.topbar__title h1[data-v-3ce78390] {
  margin: 0;
  font-size: 1.15rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; /* 제목이 길어질 때 줄바꿈 대신 ... 으로 표시 */
}
.topbar__breadcrumb[data-v-3ce78390] {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.25rem;
  min-width: 0;
  overflow: hidden;
}
.topbar__breadcrumb-link[data-v-3ce78390] {
  color: var(--text-secondary);
  text-decoration: none;
  transition: color 0.2s;
  white-space: nowrap;
  flex-shrink: 0;
}
.topbar__breadcrumb-link[data-v-3ce78390]:hover {
  color: var(--primary-color);
  text-decoration: underline;
}
.topbar__breadcrumb-current[data-v-3ce78390] {
  color: var(--text-primary);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.topbar__breadcrumb-separator[data-v-3ce78390] {
  color: var(--text-tertiary);
  margin: 0 0.25rem;
  user-select: none;
  flex-shrink: 0;
  white-space: nowrap;
}
.topbar__title-link[data-v-3ce78390] {
  color: var(--text-primary);
  text-decoration: none;
  transition: color 0.2s;
}
.topbar__title-link[data-v-3ce78390]:hover {
  color: var(--primary-color);
  text-decoration: underline;
}
.topbar__title p[data-v-3ce78390] {
  margin: 0;
  color: var(--text-secondary);
  font-size: 0.85rem;
}
.topbar__right[data-v-3ce78390] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.topbar__controls[data-v-3ce78390] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.topbar__menu-wrapper[data-v-3ce78390] {
  position: relative;
}
.topbar__language-btn[data-v-3ce78390] {
  background: var(--surface-muted);
  border: 1px solid var(--border-color);
  border-radius: 0.5rem;
  color: var(--text-primary);
  padding: 0;
  min-width: 2rem;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  font: inherit;
  line-height: 1;
  box-sizing: border-box;
}
.topbar__language-btn[data-v-3ce78390]:hover {
  background: var(--surface-color);
  border-color: var(--primary-color);
}
.topbar__language-flag[data-v-3ce78390] {
  font-size: 1.125rem;
  line-height: 1;
  flex-shrink: 0;
  /* Windows에서 국기 이모지가 제대로 표시되도록 폰트 설정 */
  font-family: 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', 'EmojiOne Color', 'Android Emoji', 'Twemoji Mozilla', 'Segoe UI Symbol', 'Arial Unicode MS', sans-serif;
  /* 이모지가 제대로 렌더링되도록 강제 */
  font-feature-settings: 'liga' off;
  -webkit-font-feature-settings: 'liga' off;
}
.topbar__language-text[data-v-3ce78390] {
  display: none;
  font-size: 0.8125rem;
  white-space: nowrap;
}
.topbar__language-chevron[data-v-3ce78390] {
  display: none;
  font-size: 0.625rem;
  margin-left: 0.25rem;
  opacity: 0.6;
  transition: transform 0.2s;
}
.topbar__language-btn:hover .topbar__language-chevron[data-v-3ce78390] {
  opacity: 1;
}
.topbar__user[data-v-3ce78390] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  position: relative;
}

/* AppButton variant="secondary" size="sm" icon-only 와 외형을 일치시킨다 —
   안읽음 뱃지 내장으로 네이티브 <button> 으로 남긴 예외 (template 의 eslint-disable 참조). */
.topbar__dm-btn[data-v-3ce78390] {
  position: relative;
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  color: var(--text-primary);
  padding: 0;
  width: var(--control-height-sm);
  height: var(--control-height-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  font: inherit;
  line-height: 1;
  box-sizing: border-box;
}
.topbar__dm-btn[data-v-3ce78390]:hover {
  background: var(--surface-hover);
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.topbar__dm-btn--active[data-v-3ce78390] {
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.topbar__dm-btn[data-v-3ce78390]:active {
  background: var(--surface-active);
}
.topbar__dm-btn i[data-v-3ce78390] {
  font-size: 0.875rem;
}
.topbar__dm-icon--unread[data-v-3ce78390] {
  animation: dm-bell-shake-3ce78390 2s ease-in-out infinite;
}
@keyframes dm-bell-shake-3ce78390 {
0%, 80%, 100% { transform: rotate(0);
}
85% { transform: rotate(12deg);
}
90% { transform: rotate(-12deg);
}
95% { transform: rotate(6deg);
}
}
.topbar__dm-badge[data-v-3ce78390] {
  position: absolute;
  top: -4px;
  right: -4px;
  background: var(--color-danger);
  color: var(--color-white);
  font-size: 0.5625rem;
  font-weight: 700;
  min-width: 14px;
  height: 14px;
  padding: 0 3px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.topbar__menu-badge[data-v-3ce78390] {
  background: var(--color-danger);
  color: var(--color-white);
  font-size: 0.625rem;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  margin-left: auto;
}
.topbar__avatar-wrapper[data-v-3ce78390] {
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

/* 어드민 뱃지 — 아바타 원 우측 상단 밖으로 살짝 튀어나오게 */
.topbar__avatar-admin-badge[data-v-3ce78390] {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-warning);
  color: var(--color-white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 1.5px var(--surface-color);
  pointer-events: none;
}
.topbar__avatar-admin-badge i[data-v-3ce78390] {
  font-size: 6px;
  line-height: 1;
}
.topbar__avatar[data-v-3ce78390] {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: none;
  transition: transform 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 0.875rem;
  background: var(--surface-muted);
  color: var(--text-primary);
}
.topbar__avatar--image[data-v-3ce78390] {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.topbar__avatar-wrapper:hover .topbar__avatar[data-v-3ce78390] {
  transform: scale(1.05);
}
.topbar__menu[data-v-3ce78390] {
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  min-width: 180px;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 0.5rem;
  box-shadow: var(--shadow-modal);
  list-style: none;
  margin: 0;
  padding: 0.25rem;
  z-index: 1100;
}
.topbar__menu-item[data-v-3ce78390] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem 0.875rem;
  cursor: pointer;
  border-radius: 0.375rem;
  transition: background-color 0.2s;
  color: var(--text-primary);
}
.topbar__menu-item[data-v-3ce78390]:hover {
  background-color: var(--surface-muted);
}
.topbar__menu-item--active[data-v-3ce78390] {
  color: var(--primary-color);
}
.topbar__menu-item--header[data-v-3ce78390] {
  font-weight: 700;
  cursor: default;
}
.topbar__menu-item--header[data-v-3ce78390]:hover {
  background-color: transparent;
}
.topbar__menu-item--clickable[data-v-3ce78390] {
  cursor: pointer;
  font-weight: 600;
}
.topbar__menu-item--clickable[data-v-3ce78390]:hover {
  background-color: var(--surface-muted);
}
.topbar__menu-separator[data-v-3ce78390] {
  height: 1px;
  background: var(--border-color);
  margin: 0.25rem 0;
  padding: 0;
}
.menu-item__flag[data-v-3ce78390] {
  font-size: 1.125rem;
  line-height: 1;
  flex-shrink: 0;
  width: 1rem;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  /* Windows에서 국기 이모지가 제대로 표시되도록 폰트 설정 */
  font-family: 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', 'EmojiOne Color', 'Android Emoji', 'Twemoji Mozilla', 'Segoe UI Symbol', 'Arial Unicode MS', sans-serif;
  /* 이모지가 제대로 렌더링되도록 강제 */
  font-feature-settings: 'liga' off;
  -webkit-font-feature-settings: 'liga' off;
}
.menu-item__icon[data-v-3ce78390] {
  font-size: 0.875rem;
  flex-shrink: 0;
  width: 1rem;
  text-align: center;
}
.menu-item__label[data-v-3ce78390] {
  flex: 1;
  font-size: 0.875rem;
}
.menu-item__check[data-v-3ce78390] {
  margin-left: auto;
  color: var(--primary-color);
  font-size: 0.875rem;
}
.menu-item__chevron[data-v-3ce78390] {
  margin-left: auto;
  font-size: 0.625rem;
  opacity: 0.6;
  transition: transform 0.2s;
}
.topbar__menu-item--submenu[data-v-3ce78390] {
  position: relative;
}
.topbar__menu-item--submenu:hover .menu-item__chevron[data-v-3ce78390] {
  opacity: 1;
  transform: translateX(2px);
}
.topbar__submenu[data-v-3ce78390] {
  position: absolute;
  right: 100%;
  top: 0;
  margin-right: 0.5rem;
  min-width: 180px;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 0.5rem;
  box-shadow: var(--shadow-modal);
  list-style: none;
  margin: 0;
  padding: 0.25rem;
  z-index: 1101;
}
.topbar__back-btn[data-v-3ce78390] {
  margin-right: 0;
}
@media (max-width: 768px) {
.topbar[data-v-3ce78390] {
    padding: 0.5rem 1rem;
}
.topbar__left[data-v-3ce78390] {
    gap: 0.5rem;
}
.topbar__title h1[data-v-3ce78390] {
    font-size: 1rem;
}
.topbar__title p[data-v-3ce78390] {
    font-size: 0.75rem;
}
.topbar__controls[data-v-3ce78390] {
    gap: 0.5rem;
}
}
@media (max-width: 480px) {
.topbar__left[data-v-3ce78390] {
    gap: 0.375rem;
}
}

.app-shell[data-v-cfff4234] {
  display: flex;
  height: 100vh;
  /* iOS Safari 주소 표시줄 문제 해결: CSS 변수 사용 */
  height: var(--vh, 100vh);
  /* 최신 브라우저에서는 dvh 사용 (fallback) */
  height: 100dvh;
  background: var(--surface-color);
  color: var(--text-primary);
  overflow: hidden;
}
.app-shell__main[data-v-cfff4234] {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--background-color);
}
.app-shell__content[data-v-cfff4234] {
  flex: 1 1 auto;
  /* 패딩 제거 (여백 없이 꽉 차게) */
  padding: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* 가로 스크롤 방지, 세로 스크롤은 컨텐츠 내부에서 처리 */
}
@media (max-width: 768px) {
.app-shell[data-v-cfff4234] {
    flex-direction: column;
}
.app-shell__overlay[data-v-cfff4234] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--backdrop-bg);
    backdrop-filter: blur(4px);
    z-index: 999;
    animation: fadeIn-cfff4234 0.3s ease;
}
.app-shell--sidebar-collapsed .app-shell__overlay[data-v-cfff4234] {
    display: none;
}
.app-shell__content[data-v-cfff4234] {
    /* 모바일에서는 바디 영역 패딩을 제거하여 화면을 최대한 넓게 사용 */
    padding: 0;
}

  /* 모바일에서는 메인 영역이 뷰포트 높이를 기준으로 잡히도록 명시 */
  /* iOS Safari 주소 표시줄 문제 해결: CSS 변수 사용 */
.app-shell__main[data-v-cfff4234] {
    height: 100vh;
    height: var(--vh, 100vh);
}
}
@keyframes fadeIn-cfff4234 {
from {
    opacity: 0;
}
to {
    opacity: 1;
}
}

.route-blocker {
  min-height: 100vh;
  /* iOS Safari 주소 표시줄 문제 해결: CSS 변수 사용 */
  min-height: var(--vh, 100vh);
  min-height: 100dvh;
}
/**
 * 키워드 검색 하이라이트 공통 스타일
 * 모든 화면에서 동일한 형광팬 스타일의 하이라이트를 제공
 * 배경만 처리하고 폰트는 변경하지 않음
 */

.search-highlight {
  /* 배경색을 약간 더 진하게 설정 */
  background-color: var(--color-warning) !important;
  padding: 0 !important;
  border-radius: 2px;
  display: inline;
  vertical-align: baseline;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  /* font-weight를 unset으로 설정하여 부모의 폰트 굵기를 그대로 사용 */
  font-weight: unset !important;
  /* color를 지정하지 않아 부모의 색상을 그대로 사용 */
}

/* 다크 테마 지원 - 배경색을 약간 더 진하게 */
html[data-theme='dark'] .search-highlight,
body[data-theme='dark'] .search-highlight {
  background-color: var(--color-warning) !important;
  /* 다크 모드에서는 노란 배경 위에 흰 글씨가 잘 안 보이므로
     글자색을 진한 색으로 강제로 맞춰 가독성을 높인다. */
  color: var(--text-primary) !important;
  font-weight: unset !important;
}

html[data-theme='light'] .search-highlight,
body[data-theme='light'] .search-highlight {
  background-color: var(--color-warning) !important;
  font-weight: unset !important;
}

*, ::before, ::after {--_histoire-color-primary-50: 236 253 245;--_histoire-color-primary-100: 209 250 229;--_histoire-color-primary-200: 167 243 208;--_histoire-color-primary-300: 110 231 183;--_histoire-color-primary-400: 52 211 153;--_histoire-color-primary-500: 16 185 129;--_histoire-color-primary-600: 5 150 105;--_histoire-color-primary-700: 4 120 87;--_histoire-color-primary-800: 6 95 70;--_histoire-color-primary-900: 6 78 59;--_histoire-color-gray-50: 250 250 250;--_histoire-color-gray-100: 244 244 245;--_histoire-color-gray-200: 228 228 231;--_histoire-color-gray-300: 212 212 216;--_histoire-color-gray-400: 161 161 170;--_histoire-color-gray-500: 113 113 122;--_histoire-color-gray-600: 82 82 91;--_histoire-color-gray-700: 63 63 70;--_histoire-color-gray-750: 50 50 56;--_histoire-color-gray-800: 39 39 42;--_histoire-color-gray-850: 31 31 33;--_histoire-color-gray-900: 24 24 27;--_histoire-color-gray-950: 16 16 18;}

@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)){

.resize-observer[data-v-b329ee4c]{
  position:absolute;
  top:0;
  left:0;
  z-index:-1;
  width:100%;
  height:100%;
  border:none;
  background-color:transparent;
  pointer-events:none;
  display:block;
  overflow:hidden;
  opacity:0
}

.resize-observer[data-v-b329ee4c] object{
  display:block;
  position:absolute;
  top:0;
  left:0;
  height:100%;
  width:100%;
  overflow:hidden;
  pointer-events:none;
  z-index:-1
}

.v-popper__popper{
  z-index:10000;
  top:0;
  left:0;
  outline:none
}

.v-popper__popper.v-popper__popper--hidden{
  visibility:hidden;
  opacity:0;
  transition:opacity .15s,visibility .15s;
  pointer-events:none
}

.v-popper__popper.v-popper__popper--shown{
  visibility:visible;
  opacity:1;
  transition:opacity .15s
}

.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{
  transition:none!important
}

.v-popper__backdrop{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  display:none
}

.v-popper__inner{
  position:relative;
  box-sizing:border-box;
  overflow-y:auto
}

.v-popper__inner>div{
  position:relative;
  z-index:1;
  max-width:inherit;
  max-height:inherit
}

.v-popper__arrow-container{
  position:absolute;
  width:10px;
  height:10px
}

.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{
  display:none
}

.v-popper__arrow-inner,.v-popper__arrow-outer{
  border-style:solid;
  position:absolute;
  top:0;
  left:0;
  width:0;
  height:0
}

.v-popper__arrow-inner{
  visibility:hidden;
  border-width:7px
}

.v-popper__arrow-outer{
  border-width:6px
}

.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{
  left:-2px
}

.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{
  left:-1px
}

.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{
  border-bottom-width:0;
  border-left-color:transparent!important;
  border-right-color:transparent!important;
  border-bottom-color:transparent!important
}

.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{
  top:-2px
}

.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{
  top:0
}

.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{
  border-top-width:0;
  border-left-color:transparent!important;
  border-right-color:transparent!important;
  border-top-color:transparent!important
}

.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{
  top:-4px
}

.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{
  top:-6px
}

.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{
  top:-2px
}

.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{
  top:-1px
}

.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{
  border-left-width:0;
  border-left-color:transparent!important;
  border-top-color:transparent!important;
  border-bottom-color:transparent!important
}

.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{
  left:-4px
}

.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{
  left:-6px
}

.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{
  right:-10px
}

.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{
  border-right-width:0;
  border-top-color:transparent!important;
  border-right-color:transparent!important;
  border-bottom-color:transparent!important
}

.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{
  left:-2px
}

.v-popper--theme-tooltip .v-popper__inner{
  background:rgba(0,0,0,.8);
  color:#fff;
  border-radius:6px;
  padding:7px 12px 6px
}

.v-popper--theme-tooltip .v-popper__arrow-outer{
  border-color:#000c
}

.v-popper--theme-dropdown .v-popper__inner{
  background:#fff;
  color:#000;
  border-radius:6px;
  border:1px solid #ddd;
  box-shadow:0 6px 30px #0000001a
}

.v-popper--theme-dropdown .v-popper__arrow-inner{
  visibility:visible;
  border-color:#fff
}

.v-popper--theme-dropdown .v-popper__arrow-outer{
  border-color:#ddd
}

.htw-bind-col-size{
  grid-template-columns:repeat(auto-fill,minmax(var(--histoire-col-size),1fr))
}

.__histoire-json-code[data-v-d4369e5a] .cm-editor{
  height:100%;
  min-width:280px
}

.v-popper{
  line-height:0
}

.htw-dark .v-popper--theme-dropdown .v-popper__inner{
  --tw-border-opacity: 1;
  border-color:rgb(31 31 33 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color:rgb(63 63 70 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color:rgb(244 244 245 / var(--tw-text-opacity, 1))
}

.htw-dark .v-popper--theme-dropdown .v-popper__arrow-inner{
  --tw-border-opacity: 1;
  border-color:rgb(63 63 70 / var(--tw-border-opacity, 1))
}

.htw-dark .v-popper--theme-dropdown .v-popper__arrow-outer{
  --tw-border-opacity: 1;
  border-color:rgb(31 31 33 / var(--tw-border-opacity, 1))
}

.v-popper--theme-dropdown.v-popper__popper--show-from .v-popper__wrapper{
  transform:scale(.75)
}

.v-popper--theme-dropdown.v-popper__popper--show-to .v-popper__wrapper{
  transform:none;
  transition:transform .15s cubic-bezier(0,1,.5,1)
}

.v-popper__popper:focus-visible{
  outline:none
}

.htw-range-input::-webkit-slider-thumb{
  height:.75rem;
  width:.75rem;
  -webkit-appearance:none;
  appearance:none;
  border-radius:9999px;
  border-width:1px;
  border-style:solid;
  border-color:#00000040;
  --tw-bg-opacity: 1;
  background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))
}

.htw-range-input:is(.htw-dark *)::-webkit-slider-thumb{
  border-color:#ffffff40;
  --tw-bg-opacity: 1;
  background-color:rgb(63 63 70 / var(--tw-bg-opacity, 1))
}

.htw-range-input:hover::-webkit-slider-thumb{
  --tw-border-opacity: 1 !important;
  border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))!important;
  --tw-bg-opacity: 1 !important;
  background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))!important
}

.htw-range-input::-moz-range-thumb{
  height:.75rem;
  width:.75rem;
  -moz-appearance:none;
  appearance:none;
  border-radius:9999px;
  border-width:1px;
  border-style:solid;
  border-color:#00000040;
  --tw-bg-opacity: 1;
  background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))
}

.htw-range-input:is(.htw-dark *)::-moz-range-thumb{
  border-color:#ffffff40;
  --tw-bg-opacity: 1;
  background-color:rgb(63 63 70 / var(--tw-bg-opacity, 1))
}

.htw-range-input:hover::-moz-range-thumb{
  --tw-border-opacity: 1 !important;
  border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))!important;
  --tw-bg-opacity: 1 !important;
  background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))!important
}

/* @TODO custom themes */

.v-popper {
  line-height: 0;
}

.htw-dark .v-popper--theme-dropdown .v-popper__inner{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-850) / var(--tw-border-opacity, 1));
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-gray-700) / var(--tw-bg-opacity, 1));
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-gray-100) / var(--tw-text-opacity, 1))
}

.htw-dark .v-popper--theme-dropdown .v-popper__arrow-inner{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-700) / var(--tw-border-opacity, 1))
}

.htw-dark .v-popper--theme-dropdown .v-popper__arrow-outer{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-850) / var(--tw-border-opacity, 1))
}

.v-popper--theme-dropdown.v-popper__popper--show-from .v-popper__wrapper {
  transform: scale(.75);
}

.v-popper--theme-dropdown.v-popper__popper--show-to .v-popper__wrapper {
  transform: none;
  transition: transform .15s cubic-bezier(0, 1, .5, 1);
}

.v-popper__popper:focus-visible {
  outline: none;
}

.__histoire-scale-x-enter-active,
  .__histoire-scale-x-leave-active {
  transition: transform .15s, opacity .15s;
}

.__histoire-scale-x-enter-from,
  .__histoire-scale-x-leave-to {
  transform: scaleX(0);
  opacity: 0;
}

.__histoire-scale-y-enter-active,
  .__histoire-scale-y-leave-active {
  transition: transform .15s, opacity .15s;
}

.__histoire-scale-y-enter-from,
  .__histoire-scale-y-leave-to {
  transform: scaleY(0);
  opacity: 0;
}

.__histoire-fade-enter-active,
  .__histoire-fade-leave-active {
  transition: opacity .15s;
}

.__histoire-fade-enter-from,
  .__histoire-fade-leave-to {
  opacity: 0;
}

.__histoire-fade-bottom-enter-active,
  .__histoire-fade-bottom-leave-active {
  transition: transform .15s, opacity .15s;
  transform: translateY(0px);
}

.__histoire-fade-bottom-enter-from,
  .__histoire-fade-bottom-leave-to {
  transform: translateY(32px);
  opacity: 0;
}

*,
::before,
::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: #e5e7eb;
}

a,
input,
button {
  color: inherit;
}

a {
  text-decoration: inherit;
}

input, button {
  font-family: inherit;
}

a,
button {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

*, ::before, ::after{
  --tw-border-spacing-x:0;
  --tw-border-spacing-y:0;
  --tw-translate-x:0;
  --tw-translate-y:0;
  --tw-rotate:0;
  --tw-skew-x:0;
  --tw-skew-y:0;
  --tw-scale-x:1;
  --tw-scale-y:1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness:proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width:0px;
  --tw-ring-offset-color:#fff;
  --tw-ring-color:rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow:0 0 #0000;
  --tw-ring-shadow:0 0 #0000;
  --tw-shadow:0 0 #0000;
  --tw-shadow-colored:0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
  --tw-contain-size: ;
  --tw-contain-layout: ;
  --tw-contain-paint: ;
  --tw-contain-style: 
}

::backdrop{
  --tw-border-spacing-x:0;
  --tw-border-spacing-y:0;
  --tw-translate-x:0;
  --tw-translate-y:0;
  --tw-rotate:0;
  --tw-skew-x:0;
  --tw-skew-y:0;
  --tw-scale-x:1;
  --tw-scale-y:1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness:proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width:0px;
  --tw-ring-offset-color:#fff;
  --tw-ring-color:rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow:0 0 #0000;
  --tw-ring-shadow:0 0 #0000;
  --tw-shadow:0 0 #0000;
  --tw-shadow-colored:0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
  --tw-contain-size: ;
  --tw-contain-layout: ;
  --tw-contain-paint: ;
  --tw-contain-style: 
}

body,
  pre {
  margin: 0;
}

:scope,
  body,
  #app {
  height: 100%;
}

:scope {
  font-family: 'Noto Sans Display', system-ui, sans-serif;
  font-size: 1rem;
}

body {
  font-size: 1.125rem;
}

@media (min-width: 640px) {
  body {
    font-size: .875rem;
  }
}

.__histoire-render-story:not(.__histoire-render-custom-controls) {
  overflow: auto;
  min-height: 100%;
}

.__histoire-code .shiki {
  background: transparent !important;
}

.htw-prose h1:not(:hover) .header-anchor[aria-hidden="true"], .htw-prose h2:not(:hover) .header-anchor[aria-hidden="true"], .htw-prose h3:not(:hover) .header-anchor[aria-hidden="true"], .htw-prose h4:not(:hover) .header-anchor[aria-hidden="true"] {
  visibility: hidden;
}

.htw-prose hr {
  margin: 1rem 0;
}

.__histoire-pane-shadow-from-right {
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0));
  background-size: 24px;
  background-repeat: no-repeat;
  background-position: right;
}

.htw-dark .__histoire-pane-shadow-from-right {
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));
}

.htw-prose{
  color:var(--tw-prose-body);
  max-width:65ch;
}

.htw-prose :where(p):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:1.25em;
  margin-bottom:1.25em
}

.htw-prose :where([class~="lead"]):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:var(--tw-prose-lead);
  font-size:1.25em;
  line-height:1.6;
  margin-top:1.2em;
  margin-bottom:1.2em
}

.htw-prose :where(a):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:rgb(var(--_histoire-color-primary-500));
  text-decoration:none;
  font-weight:500;
}

.htw-prose :where(a):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)):hover{
  text-decoration:underline
}

.htw-prose :where(strong):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:var(--tw-prose-bold);
  font-weight:600
}

.htw-prose :where(a strong):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:inherit
}

.htw-prose :where(blockquote strong):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:inherit
}

.htw-prose :where(thead th strong):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:inherit
}

.htw-prose :where(ol):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  list-style-type:decimal;
  margin-top:1.25em;
  margin-bottom:1.25em;
  padding-inline-start:1.625em
}

.htw-prose :where(ol[type="A"]):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  list-style-type:upper-alpha
}

.htw-prose :where(ol[type="a"]):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  list-style-type:lower-alpha
}

.htw-prose :where(ol[type="A" s]):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  list-style-type:upper-alpha
}

.htw-prose :where(ol[type="a" s]):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  list-style-type:lower-alpha
}

.htw-prose :where(ol[type="I"]):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  list-style-type:upper-roman
}

.htw-prose :where(ol[type="i"]):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  list-style-type:lower-roman
}

.htw-prose :where(ol[type="I" s]):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  list-style-type:upper-roman
}

.htw-prose :where(ol[type="i" s]):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  list-style-type:lower-roman
}

.htw-prose :where(ol[type="1"]):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  list-style-type:decimal
}

.htw-prose :where(ul):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  list-style-type:disc;
  margin-top:1.25em;
  margin-bottom:1.25em;
  padding-inline-start:1.625em
}

.htw-prose :where(ol > li):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *))::marker{
  font-weight:400;
  color:var(--tw-prose-counters)
}

.htw-prose :where(ul > li):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *))::marker{
  color:var(--tw-prose-bullets)
}

.htw-prose :where(dt):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:var(--tw-prose-headings);
  font-weight:600;
  margin-top:1.25em
}

.htw-prose :where(hr):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  border-color:var(--tw-prose-hr);
  border-top-width:1px;
  margin-top:3em;
  margin-bottom:3em
}

.htw-prose :where(blockquote):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  font-weight:500;
  font-style:italic;
  color:var(--tw-prose-quotes);
  border-inline-start-width:0.25rem;
  border-inline-start-color:var(--tw-prose-quote-borders);
  quotes:"\201C""\201D""\2018""\2019";
  margin-top:1.6em;
  margin-bottom:1.6em;
  padding-inline-start:1em;
  margin-left:0;
  margin-right:0;
  background-color:rgb(var(--_histoire-color-gray-100));
  padding:.25rem .375rem;
}

.htw-prose :where(blockquote):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)) p:first-child{
  margin-top:0
}

.htw-prose :where(blockquote):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)) p:last-child{
  margin-bottom:0
}

.htw-dark .htw-prose :where(blockquote):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  background-color:rgb(var(--_histoire-color-gray-750))
}

.htw-prose :where(blockquote p:first-of-type):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *))::before{
  content:open-quote
}

.htw-prose :where(blockquote p:last-of-type):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *))::after{
  content:close-quote
}

.htw-prose :where(h1):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:var(--tw-prose-headings);
  font-weight:800;
  font-size:2.25em;
  margin-top:0;
  margin-bottom:0.8888889em;
  line-height:1.1111111
}

.htw-prose :where(h1 strong):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  font-weight:900;
  color:inherit
}

.htw-prose :where(h2):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:var(--tw-prose-headings);
  font-weight:700;
  font-size:1.5em;
  margin-top:2em;
  margin-bottom:1em;
  line-height:1.3333333
}

.htw-prose :where(h2 strong):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  font-weight:800;
  color:inherit
}

.htw-prose :where(h3):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:var(--tw-prose-headings);
  font-weight:600;
  font-size:1.25em;
  margin-top:1.6em;
  margin-bottom:0.6em;
  line-height:1.6
}

.htw-prose :where(h3 strong):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  font-weight:700;
  color:inherit
}

.htw-prose :where(h4):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:var(--tw-prose-headings);
  font-weight:600;
  margin-top:1.5em;
  margin-bottom:0.5em;
  line-height:1.5
}

.htw-prose :where(h4 strong):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  font-weight:700;
  color:inherit
}

.htw-prose :where(img):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:2em;
  margin-bottom:2em
}

.htw-prose :where(picture):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  display:block;
  margin-top:2em;
  margin-bottom:2em
}

.htw-prose :where(video):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:2em;
  margin-bottom:2em
}

.htw-prose :where(kbd):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  font-weight:500;
  font-family:inherit;
  color:var(--tw-prose-kbd);
  box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);
  font-size:0.875em;
  border-radius:0.3125rem;
  padding-top:0.1875em;
  padding-inline-end:0.375em;
  padding-bottom:0.1875em;
  padding-inline-start:0.375em
}

.htw-prose :where(code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:var(--tw-prose-code);
  font-weight:normal;
  font-size:0.8rem;
  background-color:rgb(var(--_histoire-color-gray-500) / 20%);
  padding:0.05rem 0.5rem;
  border-radius:0.25rem;
}

.htw-prose :where(code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *))::before,.htw-prose :where(code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *))::after{
  display:none
}

.htw-prose :where(code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *))::before{
  content:"`"
}

.htw-prose :where(code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *))::after{
  content:"`"
}

.htw-prose :where(a code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:inherit
}

.htw-prose :where(h1 code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:inherit
}

.htw-prose :where(h2 code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:inherit;
  font-size:0.875em
}

.htw-prose :where(h3 code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:inherit;
  font-size:0.9em
}

.htw-prose :where(h4 code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:inherit
}

.htw-prose :where(blockquote code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:inherit
}

.htw-prose :where(thead th code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:inherit
}

.htw-prose :where(pre):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:var(--tw-prose-pre-code);
  background-color:var(--tw-prose-pre-bg);
  overflow-x:auto;
  font-weight:400;
  font-size:0.875em;
  line-height:1.7142857;
  margin-top:1.7142857em;
  margin-bottom:1.7142857em;
  border-radius:0.375rem;
  padding-top:0.8571429em;
  padding-inline-end:1.1428571em;
  padding-bottom:0.8571429em;
  padding-inline-start:1.1428571em
}

.htw-prose :where(pre code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  background-color:transparent;
  border-width:0;
  border-radius:0;
  padding:0;
  font-weight:inherit;
  color:inherit;
  font-size:inherit;
  font-family:inherit;
  line-height:inherit
}

.htw-prose :where(pre code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *))::before{
  content:none
}

.htw-prose :where(pre code):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *))::after{
  content:none
}

.htw-prose :where(table):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  width:100%;
  table-layout:auto;
  margin-top:2em;
  margin-bottom:2em;
  font-size:0.875em;
  line-height:1.7142857
}

.htw-prose :where(thead):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  border-bottom-width:1px;
  border-bottom-color:var(--tw-prose-th-borders)
}

.htw-prose :where(thead th):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:var(--tw-prose-headings);
  font-weight:600;
  vertical-align:bottom;
  padding-inline-end:0.5714286em;
  padding-bottom:0.5714286em;
  padding-inline-start:0.5714286em
}

.htw-prose :where(tbody tr):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  border-bottom-width:1px;
  border-bottom-color:var(--tw-prose-td-borders)
}

.htw-prose :where(tbody tr:last-child):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  border-bottom-width:0
}

.htw-prose :where(tbody td):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  vertical-align:baseline
}

.htw-prose :where(tfoot):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  border-top-width:1px;
  border-top-color:var(--tw-prose-th-borders)
}

.htw-prose :where(tfoot td):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  vertical-align:top
}

.htw-prose :where(th, td):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  text-align:start
}

.htw-prose :where(figure > *):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:0;
  margin-bottom:0
}

.htw-prose :where(figcaption):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  color:var(--tw-prose-captions);
  font-size:0.875em;
  line-height:1.4285714;
  margin-top:0.8571429em
}

.htw-prose{
  --tw-prose-body:#374151;
  --tw-prose-headings:#111827;
  --tw-prose-lead:#4b5563;
  --tw-prose-links:#111827;
  --tw-prose-bold:#111827;
  --tw-prose-counters:#6b7280;
  --tw-prose-bullets:#d1d5db;
  --tw-prose-hr:#e5e7eb;
  --tw-prose-quotes:#111827;
  --tw-prose-quote-borders:#e5e7eb;
  --tw-prose-captions:#6b7280;
  --tw-prose-kbd:#111827;
  --tw-prose-kbd-shadows:rgb(17 24 39 / 10%);
  --tw-prose-code:#111827;
  --tw-prose-pre-code:#e5e7eb;
  --tw-prose-pre-bg:#1f2937;
  --tw-prose-th-borders:#d1d5db;
  --tw-prose-td-borders:#e5e7eb;
  --tw-prose-invert-body:#d1d5db;
  --tw-prose-invert-headings:#fff;
  --tw-prose-invert-lead:#9ca3af;
  --tw-prose-invert-links:#fff;
  --tw-prose-invert-bold:#fff;
  --tw-prose-invert-counters:#9ca3af;
  --tw-prose-invert-bullets:rgb(var(--_histoire-color-gray-500));
  --tw-prose-invert-hr:rgb(var(--_histoire-color-gray-800));
  --tw-prose-invert-quotes:#f3f4f6;
  --tw-prose-invert-quote-borders:rgb(var(--_histoire-color-gray-800));
  --tw-prose-invert-captions:#9ca3af;
  --tw-prose-invert-kbd:#fff;
  --tw-prose-invert-kbd-shadows:rgb(255 255 255 / 10%);
  --tw-prose-invert-code:#fff;
  --tw-prose-invert-pre-code:#d1d5db;
  --tw-prose-invert-pre-bg:rgb(0 0 0 / 50%);
  --tw-prose-invert-th-borders:#4b5563;
  --tw-prose-invert-td-borders:#374151;
  font-size:1rem;
  line-height:1.75
}

.htw-prose :where(picture > img):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:0;
  margin-bottom:0
}

.htw-prose :where(li):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:0.1rem;
  margin-bottom:0.1rem
}

.htw-prose :where(ol > li):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  padding-inline-start:0.375em
}

.htw-prose :where(ul > li):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  padding-inline-start:0.375em
}

.htw-prose :where(.htw-prose > ul > li p):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:0.75em;
  margin-bottom:0.75em
}

.htw-prose :where(.htw-prose > ul > li > p:first-child):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:1.25em
}

.htw-prose :where(.htw-prose > ul > li > p:last-child):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-bottom:1.25em
}

.htw-prose :where(.htw-prose > ol > li > p:first-child):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:1.25em
}

.htw-prose :where(.htw-prose > ol > li > p:last-child):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-bottom:1.25em
}

.htw-prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:0.75em;
  margin-bottom:0.75em
}

.htw-prose :where(dl):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:1.25em;
  margin-bottom:1.25em
}

.htw-prose :where(dd):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:0.5em;
  padding-inline-start:1.625em
}

.htw-prose :where(hr + *):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:0
}

.htw-prose :where(h2 + *):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:0
}

.htw-prose :where(h3 + *):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:0
}

.htw-prose :where(h4 + *):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:0
}

.htw-prose :where(thead th:first-child):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  padding-inline-start:0
}

.htw-prose :where(thead th:last-child):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  padding-inline-end:0
}

.htw-prose :where(tbody td, tfoot td):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  padding-top:0.5714286em;
  padding-inline-end:0.5714286em;
  padding-bottom:0.5714286em;
  padding-inline-start:0.5714286em
}

.htw-prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  padding-inline-start:0
}

.htw-prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  padding-inline-end:0
}

.htw-prose :where(figure):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:2em;
  margin-bottom:2em
}

.htw-prose :where(.htw-prose > :first-child):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-top:0
}

.htw-prose :where(.htw-prose > :last-child):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-bottom:0
}

.htw-prose :where(h1, h2, h3, h4, th):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)){
  margin-bottom:0.75rem;
}

.htw-prose :where(h1, h2, h3, h4, th):not(:where([class~="htw-not-prose"],[class~="htw-not-prose"] *)):not(:first-child){
  margin-top:1.25rem
}

.htw-pointer-events-none{
  pointer-events:none
}

.htw-invisible{
  visibility:hidden
}

.htw-fixed{
  position:fixed
}

.htw-absolute{
  position:absolute
}

.htw-relative{
  position:relative
}

.htw-inset-0{
  inset:0px
}

.htw-bottom-0{
  bottom:0px
}

.htw-bottom-4{
  bottom:1rem
}

.htw-bottom-5{
  bottom:1.25rem
}

.htw-bottom-8{
  bottom:2rem
}

.htw-left-0{
  left:0px
}

.htw-left-5{
  left:1.25rem
}

.htw-left-8{
  left:2rem
}

.htw-right-0{
  right:0px
}

.htw-right-4{
  right:1rem
}

.htw-right-5{
  right:1.25rem
}

.htw-right-8{
  right:2rem
}

.htw-top-0{
  top:0px
}

.htw-top-5{
  top:1.25rem
}

.htw-top-8{
  top:2rem
}

.htw-isolate{
  isolation:isolate
}

.htw-z-10{
  z-index:10
}

.htw-z-20{
  z-index:20
}

.htw-m-0{
  margin:0px
}

.htw-m-1{
  margin:0.25rem
}

.htw-m-4{
  margin:1rem
}

.htw-m-auto{
  margin:auto
}

.-htw-my-1{
  margin-top:-0.25rem;
  margin-bottom:-0.25rem
}

.htw-mx-1{
  margin-left:0.25rem;
  margin-right:0.25rem
}

.htw-mx-2{
  margin-left:0.5rem;
  margin-right:0.5rem
}

.htw-mx-4{
  margin-left:1rem;
  margin-right:1rem
}

.htw-mx-6{
  margin-left:1.5rem;
  margin-right:1.5rem
}

.htw-my-0{
  margin-top:0px;
  margin-bottom:0px
}

.htw-my-2{
  margin-top:0.5rem;
  margin-bottom:0.5rem
}

.htw-my-4{
  margin-top:1rem;
  margin-bottom:1rem
}

.htw-my-8{
  margin-top:2rem;
  margin-bottom:2rem
}

.-htw-mt-1{
  margin-top:-0.25rem
}

.htw-mb-2{
  margin-bottom:0.5rem
}

.htw-mb-6{
  margin-bottom:1.5rem
}

.htw-mb-8{
  margin-bottom:2rem
}

.htw-ml-4{
  margin-left:1rem
}

.htw-ml-auto{
  margin-left:auto
}

.htw-mr-2{
  margin-right:0.5rem
}

.htw-mr-auto{
  margin-right:auto
}

.htw-mt-0\.5{
  margin-top:0.125rem
}

.htw-mt-1{
  margin-top:0.25rem
}

.htw-mt-2{
  margin-top:0.5rem
}

.htw-box-border{
  box-sizing:border-box
}

.htw-block{
  display:block
}

.htw-flex{
  display:flex
}

.htw-inline-flex{
  display:inline-flex
}

.htw-grid{
  display:grid
}

.\!htw-hidden{
  display:none !important
}

.htw-hidden{
  display:none
}

.htw-h-1{
  height:0.25rem
}

.htw-h-10{
  height:2.5rem
}

.htw-h-12{
  height:3rem
}

.htw-h-16{
  height:4rem
}

.htw-h-2{
  height:0.5rem
}

.htw-h-20{
  height:5rem
}

.htw-h-3{
  height:0.75rem
}

.htw-h-32{
  height:8rem
}

.htw-h-4{
  height:1rem
}

.htw-h-48{
  height:12rem
}

.htw-h-5{
  height:1.25rem
}

.htw-h-6{
  height:1.5rem
}

.htw-h-64{
  height:16rem
}

.htw-h-8{
  height:2rem
}

.htw-h-9{
  height:2.25rem
}

.htw-h-\[100px\]{
  height:100px
}

.htw-h-\[16px\]{
  height:16px
}

.htw-h-\[1px\]{
  height:1px
}

.htw-h-\[22px\]{
  height:22px
}

.htw-h-\[27px\]{
  height:27px
}

.htw-h-\[2px\]{
  height:2px
}

.htw-h-\[51px\]{
  height:51px
}

.htw-h-fit{
  height:-moz-fit-content;
  height:fit-content
}

.htw-h-full{
  height:100%
}

.htw-h-px{
  height:1px
}

.htw-h-screen{
  height:100vh
}

.htw-max-h-\[400px\]{
  max-height:400px
}

.htw-max-h-\[80vh\]{
  max-height:80vh
}

.htw-max-h-full{
  max-height:100%
}

.htw-min-h-32{
  min-height:8rem
}

.htw-min-h-\[26px\]{
  min-height:26px
}

.htw-w-0{
  width:0px
}

.htw-w-16{
  width:4rem
}

.htw-w-2{
  width:0.5rem
}

.htw-w-20{
  width:5rem
}

.htw-w-28{
  width:7rem
}

.htw-w-3{
  width:0.75rem
}

.htw-w-32{
  width:8rem
}

.htw-w-4{
  width:1rem
}

.htw-w-5{
  width:1.25rem
}

.htw-w-6{
  width:1.5rem
}

.htw-w-64{
  width:16rem
}

.htw-w-8{
  width:2rem
}

.htw-w-\[16px\]{
  width:16px
}

.htw-w-\[2px\]{
  width:2px
}

.htw-w-fit{
  width:-moz-fit-content;
  width:fit-content
}

.htw-w-full{
  width:100%
}

.htw-w-max{
  width:-moz-max-content;
  width:max-content
}

.htw-w-px{
  width:1px
}

.htw-w-screen{
  width:100vw
}

.htw-min-w-0{
  min-width:0px
}

.htw-min-w-16{
  min-width:4rem
}

.htw-min-w-4{
  min-width:1rem
}

.htw-min-w-\[150px\]{
  min-width:150px
}

.htw-min-w-\[80px\]{
  min-width:80px
}

.htw-max-w-6{
  max-width:1.5rem
}

.htw-max-w-\[400px\]{
  max-width:400px
}

.htw-max-w-\[512px\]{
  max-width:512px
}

.htw-max-w-\[63px\]{
  max-width:63px
}

.htw-max-w-\[82px\]{
  max-width:82px
}

.htw-max-w-full{
  max-width:100%
}

.htw-max-w-none{
  max-width:none
}

.htw-flex-1{
  flex:1 1 0%
}

.htw-flex-none{
  flex:none
}

.htw-flex-shrink{
  flex-shrink:1
}

.htw-shrink{
  flex-shrink:1
}

.htw-shrink-0{
  flex-shrink:0
}

.htw-grow{
  flex-grow:1
}

.htw-rotate-90{
  --tw-rotate:90deg;
  transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

.htw-scale-0{
  --tw-scale-x:0;
  --tw-scale-y:0;
  transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

.htw-cursor-default{
  cursor:default
}

.htw-cursor-ew-resize{
  cursor:ew-resize
}

.htw-cursor-ns-resize{
  cursor:ns-resize
}

.htw-cursor-nwse-resize{
  cursor:nwse-resize
}

.htw-cursor-pointer{
  cursor:pointer
}

.htw-cursor-text{
  cursor:text
}

.htw-select-none{
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none
}

.htw-resize-none{
  resize:none
}

.htw-resize-y{
  resize:vertical
}

.htw-appearance-none{
  -webkit-appearance:none;
     -moz-appearance:none;
          appearance:none
}

.htw-grid-cols-\[repeat\(auto-fill\,minmax\(200px\,1fr\)\)\]{
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr))
}

.htw-flex-row{
  flex-direction:row
}

.htw-flex-col{
  flex-direction:column
}

.htw-flex-wrap{
  flex-wrap:wrap
}

.htw-flex-nowrap{
  flex-wrap:nowrap
}

.htw-place-content-between{
  place-content:space-between
}

.htw-items-start{
  align-items:flex-start
}

.htw-items-end{
  align-items:flex-end
}

.htw-items-center{
  align-items:center
}

.htw-items-baseline{
  align-items:baseline
}

.htw-items-stretch{
  align-items:stretch
}

.htw-justify-end{
  justify-content:flex-end
}

.htw-justify-center{
  justify-content:center
}

.htw-justify-evenly{
  justify-content:space-evenly
}

.htw-gap-0\.5{
  gap:0.125rem
}

.htw-gap-1{
  gap:0.25rem
}

.htw-gap-12{
  gap:3rem
}

.htw-gap-2{
  gap:0.5rem
}

.htw-gap-4{
  gap:1rem
}

.htw-gap-6{
  gap:1.5rem
}

.htw-gap-px{
  gap:1px
}

.htw-gap-x-2{
  -moz-column-gap:0.5rem;
       column-gap:0.5rem
}

.htw-gap-y-1{
  row-gap:0.25rem
}

.htw-space-y-4 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse:0;
  margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom:calc(1rem * var(--tw-space-y-reverse))
}

.htw-divide-y > :not([hidden]) ~ :not([hidden]){
  --tw-divide-y-reverse:0;
  border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width:calc(1px * var(--tw-divide-y-reverse))
}

.htw-divide-gray-100 > :not([hidden]) ~ :not([hidden]){
  --tw-divide-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-100) / var(--tw-divide-opacity, 1))
}

.htw-divide-gray-200 > :not([hidden]) ~ :not([hidden]){
  --tw-divide-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-200) / var(--tw-divide-opacity, 1))
}

.htw-overflow-auto{
  overflow:auto
}

.htw-overflow-hidden{
  overflow:hidden
}

.htw-overflow-y-auto{
  overflow-y:auto
}

.htw-overflow-y-scroll{
  overflow-y:scroll
}

.htw-scroll-smooth{
  scroll-behavior:smooth
}

.htw-truncate{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.htw-text-ellipsis{
  text-overflow:ellipsis
}

.htw-whitespace-nowrap{
  white-space:nowrap
}

.\!htw-rounded-\[3px\]{
  border-radius:3px !important
}

.htw-rounded{
  border-radius:0.375rem
}

.htw-rounded-full{
  border-radius:9999px
}

.htw-rounded-lg{
  border-radius:0.75rem
}

.htw-rounded-sm{
  border-radius:0.25rem
}

.htw-rounded-b-lg{
  border-bottom-right-radius:0.75rem;
  border-bottom-left-radius:0.75rem
}

.htw-rounded-l{
  border-top-left-radius:0.375rem;
  border-bottom-left-radius:0.375rem
}

.htw-rounded-r{
  border-top-right-radius:0.375rem;
  border-bottom-right-radius:0.375rem
}

.htw-rounded-r-lg{
  border-top-right-radius:0.75rem;
  border-bottom-right-radius:0.75rem
}

.htw-border{
  border-width:1px
}

.htw-border-0{
  border-width:0px
}

.htw-border-2{
  border-width:2px
}

.htw-border-8{
  border-width:8px
}

.htw-border-b{
  border-bottom-width:1px
}

.htw-border-l-2{
  border-left-width:2px
}

.htw-border-r{
  border-right-width:1px
}

.htw-border-t{
  border-top-width:1px
}

.htw-border-solid{
  border-style:solid
}

.htw-border-none{
  border-style:none
}

.htw-border-black\/20{
  border-color:rgb(0 0 0 / 0.2)
}

.htw-border-black\/25{
  border-color:rgb(0 0 0 / 0.25)
}

.htw-border-black\/50{
  border-color:rgb(0 0 0 / 0.5)
}

.htw-border-current{
  border-color:currentColor
}

.htw-border-gray-100{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-100) / var(--tw-border-opacity, 1))
}

.htw-border-gray-200{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-200) / var(--tw-border-opacity, 1))
}

.htw-border-gray-300\/30{
  border-color:rgb(var(--_histoire-color-gray-300) / 0.3)
}

.htw-border-gray-500\/10{
  border-color:rgb(var(--_histoire-color-gray-500) / 0.1)
}

.htw-border-gray-500\/30{
  border-color:rgb(var(--_histoire-color-gray-500) / 0.3)
}

.htw-border-gray-500\/40{
  border-color:rgb(var(--_histoire-color-gray-500) / 0.4)
}

.htw-border-gray-500\/5{
  border-color:rgb(var(--_histoire-color-gray-500) / 0.05)
}

.htw-border-gray-500\/50{
  border-color:rgb(var(--_histoire-color-gray-500) / 0.5)
}

.htw-border-gray-600{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-600) / var(--tw-border-opacity, 1))
}

.htw-border-gray-800{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-800) / var(--tw-border-opacity, 1))
}

.htw-border-gray-850{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-850) / var(--tw-border-opacity, 1))
}

.htw-border-primary-200{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-200) / var(--tw-border-opacity, 1))
}

.htw-border-primary-500{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-500) / var(--tw-border-opacity, 1))
}

.htw-border-primary-900{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-900) / var(--tw-border-opacity, 1))
}

.htw-border-transparent{
  border-color:transparent
}

.\!htw-bg-primary-500{
  --tw-bg-opacity:1 !important;
  background-color:rgb(var(--_histoire-color-primary-500) / var(--tw-bg-opacity, 1)) !important
}

.htw-bg-gray-100{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-gray-100) / var(--tw-bg-opacity, 1))
}

.htw-bg-gray-200{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-gray-200) / var(--tw-bg-opacity, 1))
}

.htw-bg-gray-400\/25{
  background-color:rgb(var(--_histoire-color-gray-400) / 0.25)
}

.htw-bg-gray-50{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-gray-50) / var(--tw-bg-opacity, 1))
}

.htw-bg-gray-500\/10{
  background-color:rgb(var(--_histoire-color-gray-500) / 0.1)
}

.htw-bg-gray-500\/50{
  background-color:rgb(var(--_histoire-color-gray-500) / 0.5)
}

.htw-bg-gray-700{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-gray-700) / var(--tw-bg-opacity, 1))
}

.htw-bg-gray-800{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-gray-800) / var(--tw-bg-opacity, 1))
}

.htw-bg-primary-200{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-200) / var(--tw-bg-opacity, 1))
}

.htw-bg-primary-50{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-50) / var(--tw-bg-opacity, 1))
}

.htw-bg-primary-500{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-500) / var(--tw-bg-opacity, 1))
}

.htw-bg-primary-500\/10{
  background-color:rgb(var(--_histoire-color-primary-500) / 0.1)
}

.htw-bg-primary-500\/20{
  background-color:rgb(var(--_histoire-color-primary-500) / 0.2)
}

.htw-bg-primary-500\/25{
  background-color:rgb(var(--_histoire-color-primary-500) / 0.25)
}

.htw-bg-primary-700{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-700) / var(--tw-bg-opacity, 1))
}

.htw-bg-primary-800{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-800) / var(--tw-bg-opacity, 1))
}

.htw-bg-transparent{
  background-color:transparent
}

.htw-bg-white{
  --tw-bg-opacity:1;
  background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))
}

.htw-bg-white\/80{
  background-color:rgb(255 255 255 / 0.8)
}

.htw-fill-primary-500{
  fill:rgb(var(--_histoire-color-primary-500))
}

.htw-fill-transparent{
  fill:transparent
}

.htw-stroke-white{
  stroke:#fff
}

.htw-stroke-2{
  stroke-width:2
}

.htw-p-1{
  padding:0.25rem
}

.htw-p-2{
  padding:0.5rem
}

.htw-p-4{
  padding:1rem
}

.htw-p-8{
  padding:2rem
}

.htw-p-px{
  padding:1px
}

.htw-px-0\.5{
  padding-left:0.125rem;
  padding-right:0.125rem
}

.htw-px-1{
  padding-left:0.25rem;
  padding-right:0.25rem
}

.htw-px-2{
  padding-left:0.5rem;
  padding-right:0.5rem
}

.htw-px-4{
  padding-left:1rem;
  padding-right:1rem
}

.htw-px-6{
  padding-left:1.5rem;
  padding-right:1.5rem
}

.htw-py-0\.5{
  padding-top:0.125rem;
  padding-bottom:0.125rem
}

.htw-py-1{
  padding-top:0.25rem;
  padding-bottom:0.25rem
}

.htw-py-12{
  padding-top:3rem;
  padding-bottom:3rem
}

.htw-py-2{
  padding-top:0.5rem;
  padding-bottom:0.5rem
}

.htw-py-3{
  padding-top:0.75rem;
  padding-bottom:0.75rem
}

.htw-py-4{
  padding-top:1rem;
  padding-bottom:1rem
}

.htw-pl-0{
  padding-left:0px
}

.htw-pl-0\.5{
  padding-left:0.125rem
}

.htw-pl-2{
  padding-left:0.5rem
}

.htw-pl-4{
  padding-left:1rem
}

.htw-pl-6{
  padding-left:1.5rem
}

.htw-pr-2{
  padding-right:0.5rem
}

.htw-pr-6{
  padding-right:1.5rem
}

.htw-pt-4{
  padding-top:1rem
}

.htw-text-left{
  text-align:left
}

.htw-text-center{
  text-align:center
}

.htw-font-mono{
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace
}

.htw-text-2xl{
  font-size:1.5rem;
  line-height:2rem
}

.htw-text-5xl{
  font-size:3rem;
  line-height:1
}

.htw-text-lg{
  font-size:1.125rem;
  line-height:1.75rem
}

.htw-text-sm{
  font-size:0.875rem;
  line-height:1.25rem
}

.htw-text-xs{
  font-size:0.75rem;
  line-height:1rem
}

.htw-font-bold{
  font-weight:700
}

.htw-uppercase{
  text-transform:uppercase
}

.htw-leading-none{
  line-height:1
}

.htw-leading-normal{
  line-height:1.5
}

.htw-text-black\/\[1\%\]{
  color:rgb(0 0 0 / 1%)
}

.htw-text-gray-400{
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-gray-400) / var(--tw-text-opacity, 1))
}

.htw-text-gray-500{
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-gray-500) / var(--tw-text-opacity, 1))
}

.htw-text-gray-500\/20{
  color:rgb(var(--_histoire-color-gray-500) / 0.2)
}

.htw-text-gray-700{
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-gray-700) / var(--tw-text-opacity, 1))
}

.htw-text-gray-900{
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-gray-900) / var(--tw-text-opacity, 1))
}

.htw-text-inherit{
  color:inherit
}

.htw-text-orange-500{
  --tw-text-opacity:1;
  color:rgb(249 115 22 / var(--tw-text-opacity, 1))
}

.htw-text-primary-200{
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-primary-200) / var(--tw-text-opacity, 1))
}

.htw-text-primary-400{
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-primary-400) / var(--tw-text-opacity, 1))
}

.htw-text-primary-500{
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-primary-500) / var(--tw-text-opacity, 1))
}

.htw-text-primary-600{
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-primary-600) / var(--tw-text-opacity, 1))
}

.htw-text-primary-800{
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-primary-800) / var(--tw-text-opacity, 1))
}

.htw-text-red-500{
  --tw-text-opacity:1;
  color:rgb(239 68 68 / var(--tw-text-opacity, 1))
}

.htw-text-white{
  --tw-text-opacity:1;
  color:rgb(255 255 255 / var(--tw-text-opacity, 1))
}

.htw-opacity-0{
  opacity:0
}

.htw-opacity-20{
  opacity:0.2
}

.htw-opacity-25{
  opacity:0.25
}

.htw-opacity-30{
  opacity:0.3
}

.htw-opacity-40{
  opacity:0.4
}

.htw-opacity-50{
  opacity:0.5
}

.htw-opacity-60{
  opacity:0.6
}

.htw-opacity-70{
  opacity:0.7
}

.htw-shadow-xl{
  --tw-shadow:0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

.htw-outline-none{
  outline:2px solid transparent;
  outline-offset:2px
}

.htw-transition-all{
  transition-property:all;
  transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration:150ms
}

.htw-transition-border{
  transition-property:border;
  transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration:150ms
}

.htw-transition-colors{
  transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration:150ms
}

.htw-transition-none{
  transition-property:none
}

.htw-transition-transform{
  transition-property:transform;
  transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration:150ms
}

.htw-delay-150{
  transition-delay:150ms
}

.htw-duration-150{
  transition-duration:150ms
}

.htw-duration-200{
  transition-duration:200ms
}

.htw-duration-300{
  transition-duration:300ms
}

.htw-ease-\[cubic-bezier\(0\,1\,\.6\,1\)\]{
  transition-timing-function:cubic-bezier(0,1,.6,1)
}

.htw-ease-in-out{
  transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)
}

.htw-ease-out{
  transition-timing-function:cubic-bezier(0, 0, 0.2, 1)
}

.htw-will-change-transform{
  will-change:transform
}

.dark\:htw-prose-invert:is(.htw-dark *){
  --tw-prose-body:var(--tw-prose-invert-body);
  --tw-prose-headings:var(--tw-prose-invert-headings);
  --tw-prose-lead:var(--tw-prose-invert-lead);
  --tw-prose-links:var(--tw-prose-invert-links);
  --tw-prose-bold:var(--tw-prose-invert-bold);
  --tw-prose-counters:var(--tw-prose-invert-counters);
  --tw-prose-bullets:var(--tw-prose-invert-bullets);
  --tw-prose-hr:var(--tw-prose-invert-hr);
  --tw-prose-quotes:var(--tw-prose-invert-quotes);
  --tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);
  --tw-prose-captions:var(--tw-prose-invert-captions);
  --tw-prose-kbd:var(--tw-prose-invert-kbd);
  --tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);
  --tw-prose-code:var(--tw-prose-invert-code);
  --tw-prose-pre-code:var(--tw-prose-invert-pre-code);
  --tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);
  --tw-prose-th-borders:var(--tw-prose-invert-th-borders);
  --tw-prose-td-borders:var(--tw-prose-invert-td-borders)
}

.first\:htw-mt-0:first-child{
  margin-top:0px
}

.last\:htw-mb-0:last-child{
  margin-bottom:0px
}

.focus-within\:htw-border-primary-500:focus-within{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-500) / var(--tw-border-opacity, 1))
}

.focus-within\:htw-bg-gray-500\/5:focus-within{
  background-color:rgb(var(--_histoire-color-gray-500) / 0.05)
}

.hover\:htw-border-primary-500:hover{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-500) / var(--tw-border-opacity, 1))
}

.hover\:htw-bg-gray-200:hover{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-gray-200) / var(--tw-bg-opacity, 1))
}

.hover\:htw-bg-gray-500\/10:hover{
  background-color:rgb(var(--_histoire-color-gray-500) / 0.1)
}

.hover\:htw-bg-gray-500\/20:hover{
  background-color:rgb(var(--_histoire-color-gray-500) / 0.2)
}

.hover\:htw-bg-gray-500\/30:hover{
  background-color:rgb(var(--_histoire-color-gray-500) / 0.3)
}

.hover\:htw-bg-primary-100:hover{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-100) / var(--tw-bg-opacity, 1))
}

.hover\:htw-bg-primary-200:hover{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-200) / var(--tw-bg-opacity, 1))
}

.hover\:htw-bg-primary-300:hover{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-300) / var(--tw-bg-opacity, 1))
}

.hover\:htw-bg-primary-50:hover{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-50) / var(--tw-bg-opacity, 1))
}

.hover\:htw-bg-primary-500\/10:hover{
  background-color:rgb(var(--_histoire-color-primary-500) / 0.1)
}

.hover\:htw-bg-primary-500\/30:hover{
  background-color:rgb(var(--_histoire-color-primary-500) / 0.3)
}

.hover\:htw-bg-primary-500\/50:hover{
  background-color:rgb(var(--_histoire-color-primary-500) / 0.5)
}

.hover\:htw-bg-primary-600:hover{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-600) / var(--tw-bg-opacity, 1))
}

.hover\:htw-text-primary-500:hover{
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-primary-500) / var(--tw-text-opacity, 1))
}

.hover\:htw-opacity-100:hover{
  opacity:1
}

.focus\:htw-border-primary-500:focus{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-500) / var(--tw-border-opacity, 1))
}

.focus\:htw-border-primary-500\/50:focus{
  border-color:rgb(var(--_histoire-color-primary-500) / 0.5)
}

.focus\:htw-opacity-100:focus{
  opacity:1
}

.focus-visible\:htw-border-primary-500:focus-visible{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-500) / var(--tw-border-opacity, 1))
}

.active\:htw-bg-gray-600\/50:active{
  background-color:rgb(var(--_histoire-color-gray-600) / 0.5)
}

.htw-group:first-child .group-first\:htw-hidden{
  display:none
}

.htw-group:nth-child(odd) .group-odd\:htw-bg-gray-100\/50{
  background-color:rgb(var(--_histoire-color-gray-100) / 0.5)
}

.htw-group:focus-within .group-focus-within\:htw-visible{
  visibility:visible
}

.htw-group:hover .group-hover\:htw-flex{
  display:flex
}

.htw-group:hover .group-hover\:htw-border-primary-500{
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-500) / var(--tw-border-opacity, 1))
}

.htw-group:hover .group-hover\:htw-bg-primary-100{
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-100) / var(--tw-bg-opacity, 1))
}

.htw-group:hover .group-hover\:htw-opacity-100{
  opacity:1
}

.htw-group:hover .group-hover\:htw-opacity-90{
  opacity:0.9
}

.htw-group:active .group-active\:htw-bg-gray-500\/20{
  background-color:rgb(var(--_histoire-color-gray-500) / 0.2)
}

.dark\:htw-divide-gray-750:is(.htw-dark *) > :not([hidden]) ~ :not([hidden]){
  --tw-divide-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-750) / var(--tw-divide-opacity, 1))
}

.dark\:htw-divide-gray-800:is(.htw-dark *) > :not([hidden]) ~ :not([hidden]){
  --tw-divide-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-800) / var(--tw-divide-opacity, 1))
}

.dark\:htw-divide-gray-850:is(.htw-dark *) > :not([hidden]) ~ :not([hidden]){
  --tw-divide-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-850) / var(--tw-divide-opacity, 1))
}

.dark\:htw-border-gray-700\/30:is(.htw-dark *){
  border-color:rgb(var(--_histoire-color-gray-700) / 0.3)
}

.dark\:htw-border-gray-750:is(.htw-dark *){
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-750) / var(--tw-border-opacity, 1))
}

.dark\:htw-border-gray-800:is(.htw-dark *){
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-800) / var(--tw-border-opacity, 1))
}

.dark\:htw-border-gray-850:is(.htw-dark *){
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-gray-850) / var(--tw-border-opacity, 1))
}

.dark\:htw-border-primary-900:is(.htw-dark *){
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-900) / var(--tw-border-opacity, 1))
}

.dark\:htw-border-white\/20:is(.htw-dark *){
  border-color:rgb(255 255 255 / 0.2)
}

.dark\:htw-border-white\/25:is(.htw-dark *){
  border-color:rgb(255 255 255 / 0.25)
}

.dark\:htw-border-white\/50:is(.htw-dark *){
  border-color:rgb(255 255 255 / 0.5)
}

.dark\:htw-bg-black:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))
}

.dark\:htw-bg-gray-600:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-gray-600) / var(--tw-bg-opacity, 1))
}

.dark\:htw-bg-gray-700:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-gray-700) / var(--tw-bg-opacity, 1))
}

.dark\:htw-bg-gray-750:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-gray-750) / var(--tw-bg-opacity, 1))
}

.dark\:htw-bg-gray-900:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-gray-900) / var(--tw-bg-opacity, 1))
}

.dark\:htw-bg-gray-900\/80:is(.htw-dark *){
  background-color:rgb(var(--_histoire-color-gray-900) / 0.8)
}

.dark\:htw-bg-primary-400:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-400) / var(--tw-bg-opacity, 1))
}

.dark\:htw-bg-primary-600:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-600) / var(--tw-bg-opacity, 1))
}

.dark\:htw-bg-primary-700:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-700) / var(--tw-bg-opacity, 1))
}

.dark\:htw-bg-primary-800:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-800) / var(--tw-bg-opacity, 1))
}

.dark\:htw-text-black:is(.htw-dark *){
  --tw-text-opacity:1;
  color:rgb(0 0 0 / var(--tw-text-opacity, 1))
}

.dark\:htw-text-gray-100:is(.htw-dark *){
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-gray-100) / var(--tw-text-opacity, 1))
}

.dark\:htw-text-gray-300:is(.htw-dark *){
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-gray-300) / var(--tw-text-opacity, 1))
}

.dark\:htw-text-primary-200:is(.htw-dark *){
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-primary-200) / var(--tw-text-opacity, 1))
}

.dark\:htw-text-primary-400:is(.htw-dark *){
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-primary-400) / var(--tw-text-opacity, 1))
}

.dark\:htw-text-white\/\[1\%\]:is(.htw-dark *){
  color:rgb(255 255 255 / 1%)
}

.dark\:focus-within\:htw-border-primary-500:focus-within:is(.htw-dark *){
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-500) / var(--tw-border-opacity, 1))
}

.dark\:hover\:htw-border-primary-500:hover:is(.htw-dark *){
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-500) / var(--tw-border-opacity, 1))
}

.dark\:hover\:htw-bg-gray-800:hover:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-gray-800) / var(--tw-bg-opacity, 1))
}

.dark\:hover\:htw-bg-primary-700:hover:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-700) / var(--tw-bg-opacity, 1))
}

.dark\:hover\:htw-bg-primary-800:hover:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-800) / var(--tw-bg-opacity, 1))
}

.dark\:hover\:htw-bg-primary-900:hover:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-900) / var(--tw-bg-opacity, 1))
}

.dark\:hover\:htw-text-primary-400:hover:is(.htw-dark *){
  --tw-text-opacity:1;
  color:rgb(var(--_histoire-color-primary-400) / var(--tw-text-opacity, 1))
}

.dark\:focus\:htw-border-primary-500:focus:is(.htw-dark *){
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-500) / var(--tw-border-opacity, 1))
}

.htw-group:nth-child(odd) .dark\:group-odd\:htw-bg-gray-750\/40:is(.htw-dark *){
  background-color:rgb(var(--_histoire-color-gray-750) / 0.4)
}

.htw-group:hover .group-hover\:dark\:htw-border-primary-500:is(.htw-dark *){
  --tw-border-opacity:1;
  border-color:rgb(var(--_histoire-color-primary-500) / var(--tw-border-opacity, 1))
}

.htw-group:hover .dark\:group-hover\:htw-bg-primary-700:is(.htw-dark *){
  --tw-bg-opacity:1;
  background-color:rgb(var(--_histoire-color-primary-700) / var(--tw-bg-opacity, 1))
}

@media (min-width: 640px){
  .sm\:htw-h-4{
    height:1rem
  }

  .sm\:htw-w-4{
    width:1rem
  }

  .sm\:htw-p-1{
    padding:0.25rem
  }

  .sm\:htw-py-4{
    padding-top:1rem;
    padding-bottom:1rem
  }
}

@media (min-width: 768px){
  .md\:htw-mx-auto{
    margin-left:auto;
    margin-right:auto
  }

  .md\:htw-mt-16{
    margin-top:4rem
  }

  .md\:htw-block{
    display:block
  }

  .md\:htw-max-w-\[600px\]{
    max-width:600px
  }

  .md\:htw-flex-col{
    flex-direction:column
  }

  .md\:htw-p-12{
    padding:3rem
  }

  .md\:htw-py-1\.5{
    padding-top:0.375rem;
    padding-bottom:0.375rem
  }
}

@media (min-width: 1024px){
  .lg\:htw-max-w-\[800px\]{
    max-width:800px
  }
}

@media (min-width: 1280px){
  .xl\:htw-max-w-\[900px\]{
    max-width:900px
  }
}

@media (max-width: 767px){
  .\!md\:htw-flex-col{
    flex-direction:column
  }
}

.histoire-story-list-folder-button:hover .\[\.histoire-story-list-folder-button\:hover_\&\]\:htw-opacity-100{
  opacity:1
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.bind-tree-margin[data-v-64c2458f] {
  margin-left: var(--v2562213a);
}
.bind-icon-color[data-v-64c2458f] {
  color: var(--v1eff521f);
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.bind-tree-padding[data-v-ee932a0c] {
  padding-left: var(--v5352bb71);
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.bind-icon-color[data-v-d15ecb89] {
  color: var(--a3f02f4e);
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.landscape > div > .dragger[data-v-4f40a1bb] {
  width: .625rem;
}
.portrait > div > .dragger[data-v-4f40a1bb] {
  height: .625rem;
}
.landscape > div > .dragger.dragger-offset-before[data-v-4f40a1bb] {
  right: 0;
}
.portrait > div > .dragger.dragger-offset-before[data-v-4f40a1bb] {
  bottom: 0;
}
.landscape > div > .dragger.dragger-offset-center[data-v-4f40a1bb] {
  right: -.3125rem;
}
.portrait > div > .dragger.dragger-offset-center[data-v-4f40a1bb] {
  bottom: -.3125rem;
}
.landscape > div > .dragger.dragger-offset-after[data-v-4f40a1bb] {
  right: -.625rem;
}
.portrait > div > .dragger.dragger-offset-after[data-v-4f40a1bb] {
  bottom: -.625rem;
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.htw-base-empty[data-v-c5ecfead]:not(.no-animation) {
  animation: htw-base-empty-c5ecfead .15s .2s both;
}
@keyframes htw-base-empty-c5ecfead {
0% {
    opacity: 0;
}
100% {
    opacity: 1;
}
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.__histoire-code-placeholder[data-v-96af7f40] {
  color: inherit;
  font-size: inherit;
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.bind-preview-bg[data-v-c48fb2b2] {
  background-color: var(--v627bec82);
  color: var(--v35068428);
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.bind-icon-color[data-v-feff9239] {
  color: var(--v60afaf4d);
}
.bind-preview-bg[data-v-feff9239] {
  background-color: var(--v3bd99e7e);
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.bind-icon-color[data-v-1b279b85] {
  color: var(--ab2181a2);
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.__histoire-hatched-pattern[data-v-91561117] {
  background: repeating-linear-gradient(135deg,
  transparent 0px,
  transparent 32px,
  currentColor 32px,
  currentColor 64px);
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.bind-preview-bg[data-v-18122333] {
  background-color: var(--v5f6f4ee9);
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.bind-icon-color[data-v-c2a43485] {
  color: var(--v41c4d268);
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.bind-icon-color[data-v-096f6d6e] {
  color: var(--v0f021d3c);
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
img.colorize-black[data-v-2114f510] {
  filter: grayscale(100) brightness(0);
}
}
@scope (:root) to (.__histoire-render-story:not(.__histoire-render-custom-controls)) {
.bind-icon-color[data-v-9f94ad2b] {
  color: var(--v1f9aa6ca);
}
}
.htw-bind-col-size{grid-template-columns:repeat(auto-fill,minmax(var(--histoire-col-size),1fr))}.__histoire-json-code[data-v-d4369e5a] .cm-editor{height:100%;min-width:280px}.v-popper{line-height:0}.htw-dark .v-popper--theme-dropdown .v-popper__inner{--tw-border-opacity: 1;border-color:rgb(31 31 33 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}.htw-dark .v-popper--theme-dropdown .v-popper__arrow-inner{--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}.htw-dark .v-popper--theme-dropdown .v-popper__arrow-outer{--tw-border-opacity: 1;border-color:rgb(31 31 33 / var(--tw-border-opacity, 1))}.v-popper--theme-dropdown.v-popper__popper--show-from .v-popper__wrapper{transform:scale(.75)}.v-popper--theme-dropdown.v-popper__popper--show-to .v-popper__wrapper{transform:none;transition:transform .15s cubic-bezier(0,1,.5,1)}.v-popper__popper:focus-visible{outline:none}.htw-range-input::-webkit-slider-thumb{height:.75rem;width:.75rem;-webkit-appearance:none;appearance:none;border-radius:9999px;border-width:1px;border-style:solid;border-color:#00000040;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.htw-range-input:is(.htw-dark *)::-webkit-slider-thumb{border-color:#ffffff40;--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity, 1))}.htw-range-input:hover::-webkit-slider-thumb{--tw-border-opacity: 1 !important;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))!important;--tw-bg-opacity: 1 !important;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))!important}.htw-range-input::-moz-range-thumb{height:.75rem;width:.75rem;-moz-appearance:none;appearance:none;border-radius:9999px;border-width:1px;border-style:solid;border-color:#00000040;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.htw-range-input:is(.htw-dark *)::-moz-range-thumb{border-color:#ffffff40;--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity, 1))}.htw-range-input:hover::-moz-range-thumb{--tw-border-opacity: 1 !important;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))!important;--tw-bg-opacity: 1 !important;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))!important}html,
body {
  background: transparent !important;
}body {
  margin: 0;
}html {
  font-size: 1rem;
  font-family: 'Noto Sans Display', system-ui, sans-serif;
}.htw-sandbox-hidden {
  display: none;
}.__histoire-render-story:not(.__histoire-render-custom-controls) {
  overflow: auto;
  min-height: 100%;
}

.multi-select-wrapper[data-v-b782e1fe] {
  position: relative;
  width: 200px;
  max-width: 100%;
  flex-shrink: 0;
}
.multi-select-control[data-v-b782e1fe] {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 28px 4px 8px;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--surface-color);
  height: 32px;
  cursor: pointer;
  position: relative;
  transition: all 0.2s;
  overflow: hidden;
}
.multi-select-control[data-v-b782e1fe]:hover {
  border-color: var(--primary-color);
}
.multi-select-control.open[data-v-b782e1fe] {
  border-color: var(--primary-color);
}
.multi-select-control[data-v-b782e1fe]:focus-within {
  border-color: var(--primary-color);
  outline: none;
}
.multi-select-arrow[data-v-b782e1fe] {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.7rem;
  color: var(--text-secondary);
  transition: transform 0.2s;
  pointer-events: none;
}
.multi-select-control.open .multi-select-arrow[data-v-b782e1fe] {
  transform: translateY(-50%) rotate(180deg);
}
.multi-select-tags[data-v-b782e1fe] {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  align-items: center;
}

/* 선택 태그 — primary 틴트 칩 (선택/활성 신호) */
.multi-select-tag[data-v-b782e1fe] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  background: var(--surface-primary-soft);
  color: var(--primary-color);
  border-radius: 3px;
  font-size: 0.75rem;
  font-weight: 500;
  white-space: nowrap;
  flex-shrink: 1;
  min-width: 0;
  max-width: 100px;
  min-height: 20px;
  height: 20px;
  line-height: 1;
}
.multi-select-tag-text[data-v-b782e1fe] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.multi-select-tag.more[data-v-b782e1fe] {
  cursor: default;
}
.multi-select-count[data-v-b782e1fe] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  background: var(--surface-primary-soft);
  color: var(--primary-color);
  border-radius: 3px;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
  min-height: 20px;
  height: 20px;
  line-height: 1;
}
.multi-select-count-remove[data-v-b782e1fe] {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: transparent;
  transition: background 0.2s;
}
.multi-select-count-remove[data-v-b782e1fe]:hover {
  background: var(--surface-active);
}
.multi-select-count-remove i[data-v-b782e1fe] {
  font-size: 0.6rem;
}
.multi-select-tag-remove[data-v-b782e1fe] {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  margin-left: 4px;
  border-radius: 50%;
  background: transparent;
  transition: background 0.2s;
  color: var(--primary-color);
  border: none;
  padding: 0;
}
.multi-select-tag-remove[data-v-b782e1fe]:hover {
  background: var(--surface-active);
}
.multi-select-tag-remove i[data-v-b782e1fe] {
  font-size: 0.6rem;
  line-height: 1;
}
.multi-select-placeholder[data-v-b782e1fe] {
  color: var(--text-secondary);
  font-size: 0.75rem;
  user-select: none;
  text-align: left;
  width: 100%;
}
.multi-select-control.has-selection .multi-select-placeholder[data-v-b782e1fe] {
  display: none;
}
.multi-select-tags:not(:empty) + .multi-select-placeholder[data-v-b782e1fe] {
  display: none;
}

/* 단일 선택 모드: 일반 텍스트 표시 */
.multi-select-single-text[data-v-b782e1fe] {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.8125rem;
  color: var(--text-primary);
  user-select: none;
}
.multi-select-dropdown[data-v-b782e1fe] {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 6px;
  box-shadow: var(--shadow-md);
  max-height: 250px;
  display: none;
  flex-direction: column;
  z-index: 1000;
  width: max-content;
  min-width: 100%;
  max-width: calc(100vw - 24px);
  overflow-x: auto;
}
.multi-select-dropdown.open[data-v-b782e1fe] {
  display: flex;
}

/* 화면 오른쪽 끝에서 왼쪽 정렬 시 잘리면 오른쪽 모서리 기준으로 정렬 */
.multi-select-dropdown.align-right[data-v-b782e1fe] {
  left: auto;
  right: 0;
}
.multi-select-dropdown.drop-up[data-v-b782e1fe] {
  top: auto;
  bottom: calc(100% + 6px);
}
.multi-select-search[data-v-b782e1fe] {
  padding: 8px;
  border-bottom: 1px solid var(--border-color);
}
.multi-select-search-input[data-v-b782e1fe] {
  width: 100%;
  padding: 6px 8px;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  font-size: 0.75rem;
  background: var(--surface-muted);
  color: var(--text-primary);
}
.multi-select-search-input[data-v-b782e1fe]:focus {
  outline: none;
  border-color: var(--primary-color);
}
.multi-select-all[data-v-b782e1fe] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-muted);
}
.multi-select-all-checkbox[data-v-b782e1fe] {
  width: 14px;
  height: 14px;
  margin: 0;
  flex-shrink: 0;
  cursor: pointer;
  accent-color: var(--primary-color);
}
.multi-select-all-label[data-v-b782e1fe] {
  flex: 1;
  font-size: 0.75rem;
  color: var(--text-primary);
  cursor: pointer;
  user-select: none;
  font-weight: 600;
}
.multi-select-selected-count[data-v-b782e1fe] {
  font-size: 11px;
  color: var(--text-secondary);
  font-weight: normal;
  margin-left: 4px;
}
.multi-select-options[data-v-b782e1fe] {
  overflow-y: auto;
  max-height: 200px;
  /* 옵션 라벨이 flex+overflow:hidden 으로 인해 max-content 계산에서 0으로 collapse 되어
     드롭다운이 트리거 너비에 갇히는 문제를 방지 — 가장 긴 라벨에 맞춰 가로폭 확보 */
  min-width: max-content;
  /* Firefox용 스크롤바 스타일 */
  scrollbar-width: thin;
  scrollbar-color: var(--border-color) transparent;
  outline: none;
}
.multi-select-options[data-v-b782e1fe]:focus {
  outline: none;
}

/* Webkit 브라우저용 스크롤바 스타일 - 얇고 둥근 핸들 */
.multi-select-options[data-v-b782e1fe]::-webkit-scrollbar {
  width: 8px;
  height: 8px;
  -webkit-appearance: none;
  display: block;
}
.multi-select-options[data-v-b782e1fe]::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 5px;
  -webkit-box-shadow: none;
}
.multi-select-options[data-v-b782e1fe]::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 999px;
  border: 2px solid transparent;
  -webkit-box-shadow: none;
}
.multi-select-options[data-v-b782e1fe]::-webkit-scrollbar-thumb:hover {
  background: var(--text-secondary);
}
.multi-select-options[data-v-b782e1fe]::-webkit-scrollbar-thumb:active {
  background: var(--text-secondary);
}
.multi-select-option[data-v-b782e1fe] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  cursor: pointer;
  font-size: 12px;
  color: var(--text-primary);
  transition: background 0.2s;
}
.multi-select-option[data-v-b782e1fe]:hover {
  background: var(--surface-muted);
}
.multi-select-option--highlighted[data-v-b782e1fe] {
  background: var(--surface-primary-soft) !important;
  outline: 2px solid var(--primary-color);
  outline-offset: -2px;
}
.multi-select-option-marker[data-v-b782e1fe] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.multi-select-option input[type="checkbox"][data-v-b782e1fe] {
  width: 14px;
  height: 14px;
  margin: 0;
  cursor: pointer;
  accent-color: var(--primary-color);
}
.multi-select-option-check[data-v-b782e1fe] {
  font-size: 0.75rem;
  color: var(--primary-color);
}
.multi-select-option-icon[data-v-b782e1fe] {
  width: 16px;
  height: 16px;
  object-fit: contain;
  flex-shrink: 0;
  border-radius: 2px;
}
.multi-select-tag-icon[data-v-b782e1fe] {
  width: 14px;
  height: 14px;
  object-fit: contain;
  flex-shrink: 0;
  border-radius: 2px;
}
.multi-select-option-label[data-v-b782e1fe] {
  flex: 1;
  font-size: 0.75rem;
  user-select: none;
  cursor: pointer;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.multi-select-option-suffix[data-v-b782e1fe] {
  flex-shrink: 0;
  font-size: 0.7rem;
  color: var(--text-secondary);
  margin-left: 8px;
  white-space: nowrap;
}
.multi-select-empty[data-v-b782e1fe] {
  padding: 12px;
  text-align: center;
  color: var(--text-secondary);
  font-size: 12px;
}

/* 테마별 색은 모두 테마 인식 토큰(--surface-*, --border-color, --shadow-md 등)으로
   처리되므로 별도 [data-theme] 오버라이드가 필요 없다. */

.date-range-wrapper[data-v-52b13b36] {
  position: relative;
  width: 100%;
}
.date-range-control[data-v-52b13b36] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-radius: 12px;
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  padding: 10px 12px;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.date-range-control[data-v-52b13b36]:hover {
  border-color: var(--primary-color);
}
.date-range-control.open[data-v-52b13b36] {
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.date-range-display[data-v-52b13b36] {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 20px;
  font-size: 14px;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
}
.date-range-placeholder[data-v-52b13b36] {
  font-size: 14px;
  color: var(--text-tertiary);
  flex: 1 1 auto;
  text-align: left;
  margin-left: 0;
  display: block;
}
.date-range-value[data-v-52b13b36] {
  font-weight: 500;
  color: var(--text-primary);
  white-space: nowrap;
  text-align: left;
  display: block;
}
.date-range-icon[data-v-52b13b36] {
  font-size: 16px;
  color: var(--text-tertiary);
  transition: transform 0.2s ease;
}
.date-range-control.open .date-range-icon[data-v-52b13b36] {
  transform: rotate(180deg);
}
.date-range-popup[data-v-52b13b36] {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 1000;
  width: 360px;
  border-radius: 10px;
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  box-shadow: var(--shadow-md);
  padding: 16px;
  display: block;
  visibility: visible;
  opacity: 1;
}
.date-range-popup.right-aligned[data-v-52b13b36] {
  left: auto;
  right: 0;
}
.date-range-header[data-v-52b13b36] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
}
.date-range-title[data-v-52b13b36] {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
}
.date-range-content[data-v-52b13b36] {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.date-range-presets[data-v-52b13b36] {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.date-range-calendars[data-v-52b13b36] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.date-calendar[data-v-52b13b36] {
  display: flex;
  flex-direction: column;
  gap: 4px !important;
}
.date-calendar-label[data-v-52b13b36] {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-secondary);
}

/* 날짜 입력은 공통 AppInput 기본 높이(32px)를 그대로 사용 — 폭만 채운다 */
.date-input[data-v-52b13b36] {
  width: 100%;
}
.date-range-footer[data-v-52b13b36] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--border-color);
  background: var(--surface-color);
}

/* Compact variant */
.date-range-wrapper.date-range-variant--compact[data-v-52b13b36],
.date-range-wrapper.compact[data-v-52b13b36] {
  flex: 0 1 200px;
  width: auto;
  min-width: 200px;
  max-width: 100%;
}
.date-range-wrapper.date-range-variant--compact .date-range-control[data-v-52b13b36],
.date-range-wrapper.compact .date-range-control[data-v-52b13b36] {
  border-radius: 6px;
  padding: 6px 12px;
  height: 32px;
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  overflow: hidden;
  box-shadow: none;
}
.date-range-wrapper.date-range-variant--compact .date-range-control[data-v-52b13b36]:hover {
  border-color: var(--primary-color);
}
.date-range-wrapper.date-range-variant--compact .date-range-control.open[data-v-52b13b36] {
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
  background: var(--surface-color);
}
.date-range-wrapper.date-range-variant--compact .date-range-display[data-v-52b13b36] {
  justify-content: flex-start;
  text-align: left;
  font-size: 12px;
  min-height: auto;
}
.date-range-wrapper.date-range-variant--compact .date-range-placeholder[data-v-52b13b36] {
  color: var(--text-tertiary);
  font-size: 12px;
  user-select: none;
}
.date-range-wrapper.date-range-variant--compact .date-range-value[data-v-52b13b36] {
  color: var(--text-primary);
  font-size: 12px;
  font-weight: 500;
  text-overflow: clip;
}

/* 컨트롤 안 일반 flex 항목 — 값 텍스트와 캘린더 아이콘 사이. 외형은 AppButton(ghost xs)이 담당.
   절대배치 시 긴 값 텍스트와 겹쳐 flex 항목으로 둔다. */
.date-range-clear-btn[data-v-52b13b36] {
  flex-shrink: 0;
}
.date-range-wrapper.date-range-variant--compact .date-range-icon[data-v-52b13b36] {
  font-size: 12px;
  color: var(--text-tertiary);
}
.date-range-wrapper.date-range-variant--compact .date-range-popup[data-v-52b13b36],
.date-range-wrapper.compact .date-range-popup[data-v-52b13b36] {
  border-radius: 8px;
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  min-width: 300px;
  max-width: 90vw;
  width: max-content;
  box-shadow: var(--shadow-md);
  padding: 0;
}
.date-range-wrapper.date-range-variant--compact .date-range-header[data-v-52b13b36],
.date-range-wrapper.compact .date-range-header[data-v-52b13b36] {
  padding: 12px 16px;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
  border-radius: 8px 8px 0 0;
  margin-bottom: 0;
}
.date-range-wrapper.date-range-variant--compact .date-range-title[data-v-52b13b36] {
  font-size: 14px;
}
.date-range-wrapper.date-range-variant--compact .date-range-content[data-v-52b13b36],
.date-range-wrapper.compact .date-range-content[data-v-52b13b36] {
  padding: 8px 16px;
  gap: 16px;
}
.date-range-wrapper.date-range-variant--compact .date-range-presets[data-v-52b13b36],
.date-range-wrapper.compact .date-range-presets[data-v-52b13b36] {
  grid-template-columns: repeat(4, 1fr);
  margin-top: 16px;
}
.date-range-wrapper.date-range-variant--compact .date-range-calendars[data-v-52b13b36],
.date-range-wrapper.compact .date-range-calendars[data-v-52b13b36] {
  display: flex;
  gap: 16px !important;
  align-items: flex-start;
}
.date-range-wrapper.date-range-variant--compact .date-calendar[data-v-52b13b36] {
  margin-right: 0;
}
.date-range-wrapper.date-range-variant--compact .date-calendar[data-v-52b13b36]:not(:last-child) {
  margin-right: 16px;
}
.date-range-wrapper.date-range-variant--compact .date-calendar-label[data-v-52b13b36] {
  color: var(--text-secondary);
}
.date-range-wrapper.date-range-variant--compact .date-range-footer[data-v-52b13b36],
.date-range-wrapper.compact .date-range-footer[data-v-52b13b36] {
  padding: 12px 16px;
  border-top: 1px solid var(--border-color);
  background: var(--surface-color);
  border-radius: 0 0 8px 8px;
  justify-content: space-between;
}
@media (max-width: 768px) {
.date-range-popup[data-v-52b13b36] {
    width: min(92vw, 360px);
}
.date-range-calendars[data-v-52b13b36] {
    grid-template-columns: 1fr;
    gap: 16px !important;
}
.date-range-wrapper.date-range-variant--compact .date-range-calendars[data-v-52b13b36] {
    gap: 16px !important;
}
.date-range-wrapper.date-range-variant--compact .date-calendar[data-v-52b13b36]:not(:last-child) {
    margin-bottom: 16px !important;
}
.date-range-presets[data-v-52b13b36] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.date-range-wrapper.date-range-variant--compact[data-v-52b13b36] {
    width: 100%;
    min-width: 0;
    max-width: none;
}
.date-range-wrapper.date-range-variant--compact .date-range-presets[data-v-52b13b36] {
    grid-template-columns: repeat(2, 1fr);
}
.date-range-wrapper.date-range-variant--compact .date-range-calendars[data-v-52b13b36],
  .date-range-wrapper.compact .date-range-calendars[data-v-52b13b36] {
    flex-direction: column;
    gap: 16px !important;
}
.date-range-wrapper.date-range-variant--compact .date-calendar[data-v-52b13b36]:not(:last-child) {
    margin-right: 0;
    margin-bottom: 16px !important;
}
}
@media (max-width: 480px) {
.date-range-wrapper.date-range-variant--compact[data-v-52b13b36] {
    width: 100%;
    min-width: 0;
    max-width: none;
}
.date-range-wrapper.date-range-variant--compact .date-range-popup[data-v-52b13b36] {
    min-width: 240px;
    max-width: 95vw;
}
.date-range-wrapper.date-range-variant--compact .date-range-presets[data-v-52b13b36] {
    grid-template-columns: repeat(2, 1fr);
    gap: 4px;
    margin-top: 12px;
}
.date-range-wrapper.date-range-variant--compact .date-range-content[data-v-52b13b36] {
    padding: 12px;
}
.date-range-wrapper.date-range-variant--compact .date-range-header[data-v-52b13b36],
  .date-range-wrapper.date-range-variant--compact .date-range-footer[data-v-52b13b36] {
    padding: 8px 12px;
}
.date-range-wrapper.date-range-variant--compact .date-range-title[data-v-52b13b36] {
    font-size: 12px;
}
.date-input[data-v-52b13b36] {
    font-size: 16px !important;
}
}

.highlight-text[data-v-d0611c04] {
  /* 원문 흐름을 그대로 — 부모 폰트/색 상속 */
  display: inline;
}
.highlight-text__mark[data-v-d0611c04] {
  background: var(--color-warning);
  color: var(--text-primary);
  padding: 0 2px;
  border-radius: var(--radius-sm);
  font-weight: var(--font-weight-semibold);
}

/* 다크 모드: 솔리드 워닝색은 눈부심 — 반투명 틴트로 완화하고 글자색은 그대로 유지. */
body[data-theme='dark'] .highlight-text__mark[data-v-d0611c04] {
  background: color-mix(in srgb, var(--color-warning) 28%, transparent);
}

.app-search[data-v-9a87ac40] {
  position: relative;
  width: 100%;
}
.app-search__box[data-v-9a87ac40] {
  display: flex;
  align-items: center;
  position: relative;
}
.app-search__icon[data-v-9a87ac40] {
  position: absolute;
  left: var(--space-3);
  color: var(--text-tertiary);
  font-size: var(--font-xs);
  pointer-events: none;
}
.app-search__input[data-v-9a87ac40] {
  width: 100%;
  height: var(--control-height-md);
  padding: 0 4.5rem 0 var(--space-8);
  box-sizing: border-box;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--background-color);
  color: var(--text-primary);
  font-family: inherit;
  font-size: var(--font-sm);
  outline: none;
  transition: border-color var(--transition-fast);
}
.app-search__input[data-v-9a87ac40]:focus { border-color: var(--primary-color);
}
.app-search__input[data-v-9a87ac40]::placeholder { color: var(--text-tertiary);
}

/* 터치 기기: 입력 폰트가 16px 미만이면 iOS Safari 가 포커스 시 페이지를 강제 줌인한다.
   입력 텍스트만 16px 로 키우고, 플레이스홀더는 작게 유지해 시각 차이를 줄인다.
   데스크톱(fine pointer)은 줌 이슈가 없으므로 13px 그대로 — 다른 컨트롤과 정렬. */
@media (pointer: coarse) {
.app-search__input[data-v-9a87ac40] { font-size: var(--font-base);
}
.app-search__input[data-v-9a87ac40]::placeholder { font-size: var(--font-sm);
}
  /* 드롭다운 항목도 입력창과 같은 크기로 — 입력 텍스트(16px)와 리스트가 어긋나지 않게. */
.app-search__row[data-v-9a87ac40] { font-size: var(--font-base);
}
}
.app-search__count[data-v-9a87ac40] {
  position: absolute;
  right: var(--space-8);
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  pointer-events: none;
}

/* 입력창 안의 지우기(X) — AppButton(ghost, icon-only) 을 절대배치로 우측에 정렬 */
.app-search__clear[data-v-9a87ac40] {
  position: absolute;
  right: var(--space-2);
  top: 50%;
  transform: translateY(-50%);
}

/* find-in-page 모드 — 우측 도구 묶음(카운터·이전/다음·지우기) 공간 확보 */
.app-search__input--find[data-v-9a87ac40] {
  padding-right: 8.5rem;
}
.app-search__find-tools[data-v-9a87ac40] {
  position: absolute;
  right: var(--space-1);
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  gap: 1px;
}
.app-search__find-count[data-v-9a87ac40] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  padding: 0 var(--space-1);
  white-space: nowrap;
}
.app-search__find-spinner[data-v-9a87ac40] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  padding: 0 var(--space-3);
}

/* 드롭다운 (자동완성 / 최근 검색어 공용) */
.app-search__drop[data-v-9a87ac40] {
  position: absolute;
  top: calc(100% + 2px);
  left: 0;
  right: 0;
  z-index: var(--z-dropdown);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  max-height: 240px;
  overflow-y: auto;
}
.app-search__head[data-v-9a87ac40] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-1) var(--space-2) var(--space-1) var(--space-3);
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  border-bottom: 1px solid var(--border-color);
}

/* 항목 행 (자동완성·히스토리 공용) — role="option" 의 <div>, 버튼 아님 */
.app-search__row[data-v-9a87ac40] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  padding: var(--space-2) var(--space-3);
  color: var(--text-secondary);
  font-size: var(--font-sm);
  cursor: pointer;
}

/* 강조 항목은 하나뿐 — 마우스 호버(@mousemove)와 키보드(↑↓)가 같은 activeIndex 를
   가리킨다. 별도 hover 색을 두지 않아 "호버색 vs 선택색" 충돌이 없다.
   강조 행에선 자동완성 형광표시(노랑)를 흰 굵게로 바꿔 초록 배경과 겹치지 않게. */
.app-search__row--active[data-v-9a87ac40] { background: var(--primary-color); color: var(--color-white);
}
.app-search__row--active .app-search__row-icon[data-v-9a87ac40] { color: var(--color-white);
}
.app-search__row--active[data-v-9a87ac40] .highlight-text__mark {
  background: transparent;
  color: var(--color-white);
}
.app-search__row-icon[data-v-9a87ac40] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.app-search__row-text[data-v-9a87ac40] {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 히스토리 행 삭제(X) — AppButton(ghost, icon-only) */
.app-search__row-remove[data-v-9a87ac40] {
  flex-shrink: 0;
}

.catalog-page[data-v-e2844fbc] {
  max-width: 1400px;
  margin: 0 auto;
  width: 100%;
  flex: 1 1 auto;        /* 부모 .app-shell__content 의 flex column 안에서 남는 공간 차지 */
  min-height: 0;
  display: flex;
  flex-direction: column;  /* 헤더 + body */
  overflow: hidden;        /* page 자체는 스크롤 X — 자식 catalog-body 가 스크롤 */
  box-sizing: border-box;
  padding: var(--space-5, 20px) var(--space-6, 24px) 0;
}
.catalog-body[data-v-e2844fbc] {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  /* page 의 좌우 padding 을 음수마진으로 흡수해 본문이 좌우 가득 차게 */
  margin: 0 calc(var(--space-6, 24px) * -1);
  /* 상하좌우 여백 통일 — 카드 호버 시 -3px lift 도 24px 안에 충분히 들어감 */
  padding: var(--space-6, 24px);
}

/* 검색/정렬/건수 헤더 — 우측 padding 으로 본문 스크롤바 너비를 보정해
   돋보기 버튼 우측 끝과 카드 우측 끝이 정확히 정렬되게 함 */
.catalog-header[data-v-e2844fbc] {
  margin-bottom: 0;
  padding-right: var(--sb-w, 0);
}
.header-bar[data-v-e2844fbc] {
  display: flex;
  align-items: center;
  gap: var(--space-3, 12px);
  /* 너비가 모자라면 정렬이 다음 줄로 — 그래도 우측 정렬 유지 */
  flex-wrap: wrap;
  row-gap: var(--space-3, 12px);
}
.header-bar > .detail-search-toggle[data-v-e2844fbc] {
  margin-left: auto;
}
.search-result-msg[data-v-e2844fbc] {
  margin-top: var(--space-3, 12px);
  font-size: 0.85rem;
  color: var(--text-secondary);
}

/* 상세검색 토글 버튼 — 정렬 컨트롤 옆에 배치 */
.detail-search-toggle[data-v-e2844fbc] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 38px;
  padding: 0 14px;
  box-sizing: border-box;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 8px);
  background: var(--surface-muted);
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 500;
  transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
  white-space: nowrap;
}
.detail-search-toggle[data-v-e2844fbc]:hover { color: var(--text-primary); background: var(--surface-hover);
}
.detail-search-toggle.active[data-v-e2844fbc] { color: var(--text-primary); border-color: var(--primary-color);
}
.detail-search-toggle.has-filters[data-v-e2844fbc] { color: var(--text-primary);
}
.detail-search-toggle .filter-badge[data-v-e2844fbc] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--primary-color);
  color: var(--color-white);
  font-size: 0.7rem;
  font-weight: 700;
}
.detail-search-toggle .filter-clear-x[data-v-e2844fbc] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-left: 2px;
  border-radius: 50%;
  color: var(--text-secondary);
  cursor: pointer;
  transition: background 0.12s ease, color 0.12s ease;
}
.detail-search-toggle .filter-clear-x[data-v-e2844fbc]:hover {
  background: var(--surface-active);
  color: var(--text-primary);
}
.detail-search-toggle .filter-clear-x i[data-v-e2844fbc] { font-size: 0.8rem;
}

/* 상세검색 패널 — flex wrap, 각 셀 240px 고정. 줄 높이 stretch 방지 */
.detail-filter-panel[data-v-e2844fbc] {
  margin-top: var(--space-3, 12px);
  padding: var(--space-3, 12px) var(--space-4, 16px);
  background: var(--surface-muted);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 8px);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3, 12px);
  align-content: flex-start;
  align-items: flex-start;
}
.detail-filter-row[data-v-e2844fbc] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 0 0 240px;       /* 고정 240px 폭, 늘어남 X */
  width: 240px;
  max-width: 240px;
  min-width: 0;
}
/* DateRangePicker compact 변형은 'flex: 0 1 200px' 을 갖고 있는데 우리 row 가
   column 방향이라 200px 가 HEIGHT 로 해석돼 200px 세로 stretch 됨. 무력화. */
.detail-filter-row[data-v-e2844fbc] .date-range-wrapper {
  flex: none;
  width: 100%;
  min-width: 0;
}
.detail-filter-label[data-v-e2844fbc] {
  font-size: 0.78rem;
  color: var(--text-secondary);
  font-weight: 500;
}
.detail-filter-actions[data-v-e2844fbc] {
  flex: 1 0 100%;            /* 다음 줄 + 우측 정렬 */
  display: flex;
  justify-content: flex-end;
  gap: var(--space-3, 12px);
  margin-top: var(--space-2, 8px);
}
@media (max-width: 600px) {
  /* 폰: 라벨 + 컨트롤 한 줄로 (가로 정렬) — 세로 공간 절약 */
.detail-filter-row[data-v-e2844fbc] {
    flex: 1 1 100%;
    max-width: none;
    width: auto;
    flex-direction: row;
    align-items: center;
    gap: var(--space-3, 12px);
}
.detail-filter-label[data-v-e2844fbc] {
    flex: 0 0 80px;
    margin: 0;
}
.detail-filter-row[data-v-e2844fbc] .multi-select-wrapper,
  .detail-filter-row[data-v-e2844fbc] .date-range-wrapper {
    flex: 1 1 auto;
}
.detail-search-toggle .dst-label[data-v-e2844fbc] { display: none;
}

  /* DateRangePicker popup 이 360px 고정이라 폰에서 화면 벗어남 — viewport 안에 맞춤 */
.detail-filter-row[data-v-e2844fbc] .date-range-popup {
    width: calc(100vw - 24px);
    max-width: 360px;
    left: auto;
    right: 0;
}
  /* MultiSelect dropdown — 기본 width:max-content + min-width:100% 라 폰에서 control 보다 넓게 펼쳐짐.
     control 너비에 맞추고 max-width 로 viewport 보호 */
.detail-filter-row[data-v-e2844fbc] .multi-select-dropdown {
    width: 100%;
    min-width: 0;
    max-width: calc(100vw - 24px);
}
.detail-filter-row[data-v-e2844fbc] .multi-select-wrapper {
    width: 100%;
    min-width: 0;
}
}

/* 폰: search 가 row1 전체, 상세검색 + 정렬이 row2 한 줄에 같이 */
@media (max-width: 600px) {
.header-bar > .search-wrap[data-v-e2844fbc] { flex: 1 1 100%;
}
.header-bar > .detail-search-toggle[data-v-e2844fbc] {
    margin-left: 0;
    flex: 0 0 auto;
}
.header-bar > .sort-toggle[data-v-e2844fbc] {
    flex: 1 1 0;
    min-width: 0;
}
.sort-toggle[data-v-e2844fbc] .app-btn {
    flex: 1 1 0;
    min-width: 0;
    padding: 0 var(--space-2);
}
}

/* 검색창 wrapper — 내부는 공통 AppSearchInput(돋보기·입력·지우기·드롭다운 내장).
   wrapper 는 외부 레이아웃(flex 분배, 너비)만 담당한다. */
.search-wrap[data-v-e2844fbc] {
  flex: 1 1 240px;   /* 검색창은 남는 공간 차지, 정렬은 우측에 자기 너비 */
  min-width: 0;
}

/* 정렬 — 세그먼트형 토글 버튼 그룹 (단일 선택).
   AppButton(ghost) 위에 세그먼트 컨트롤 외형만 덮어쓴다 (SortControl 과 동일 패턴):
   muted 박스 컨테이너 안에서 활성 항목만 raised chip 으로 부각. */
.sort-toggle[data-v-e2844fbc] {
  display: inline-flex;
  align-items: center;
  height: 38px;
  box-sizing: border-box;
  background: var(--surface-muted);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 8px);
  padding: 3px;
  gap: 2px;
}
.sort-toggle[data-v-e2844fbc] .app-btn {
  height: 30px;
  padding: 0 14px;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 500;
}
.sort-toggle[data-v-e2844fbc] .app-btn.app-btn--active {
  background: var(--background-color);
  box-shadow: var(--shadow-sm);
  color: var(--text-primary);
  font-weight: 600;
}
.sort-toggle[data-v-e2844fbc] .app-btn.app-btn--active:hover {
  background: var(--background-color);
}


/* 결과 수 — sticky 헤더 안 (margin 0 으로 상하 통합) */
.result-summary[data-v-e2844fbc] {
  margin: 0;
  font-size: 0.85rem;
  color: var(--text-secondary);
}

/* 빈/로딩 상태 */
.state-msg[data-v-e2844fbc] { padding: var(--space-8, 32px); text-align: center; color: var(--text-secondary);
}
.empty[data-v-e2844fbc] { padding: 64px 16px; text-align: center; color: var(--text-secondary);
}
.empty-icon[data-v-e2844fbc] { font-size: 2.5rem; margin-bottom: var(--space-3, 12px); opacity: 0.6;
}

/* 가상 스크롤 컨테이너 — 총 높이만큼 자리만 잡고, 안에 보이는 행만 그림 */
.virtual-viewport[data-v-e2844fbc] {
  position: relative;
  width: 100%;
}
/* 카드 격자 — 가상화에 의해 transform 으로 위치 이동 */
.card-grid[data-v-e2844fbc] {
  display: grid;
  /* grid-template-columns 는 :style 로 동적 주입 (auto-fill 대신 고정 cols 수) */
  gap: var(--space-5, 20px);
  will-change: transform;
}

/* 무한 스크롤 인디케이터 */
.more-state[data-v-e2844fbc] {
  text-align: center;
  padding: var(--space-2, 8px) var(--space-5, 20px);
  margin-bottom: var(--space-4, 16px);
  font-size: 0.85rem;
  color: var(--text-secondary);
}
.more-state.end[data-v-e2844fbc] { opacity: 0.5;
}
.dot-pulse[data-v-e2844fbc] {
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--primary-color);
  margin-right: 8px;
  animation: dot-pulse-e2844fbc 1.2s ease-in-out infinite;
  vertical-align: middle;
}
@keyframes dot-pulse-e2844fbc {
0%, 100% { opacity: 0.3; transform: scale(0.85);
}
50%      { opacity: 1;   transform: scale(1.15);
}
}

/* 맨 위/맨 아래 점프 버튼 */
.scroll-jump[data-v-e2844fbc] {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 30;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.jump-btn[data-v-e2844fbc] {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid var(--border-color);
  background: var(--surface-muted);
  color: var(--text-primary);
  cursor: pointer;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-md);
  transition: transform 0.15s ease, background 0.15s ease, opacity 0.15s ease;
}
.jump-btn[data-v-e2844fbc]:hover:not(.disabled) {
  background: var(--primary-color);
  border-color: var(--primary-color);
  color: var(--color-white);
  transform: translateY(-2px);
}
.jump-btn.disabled[data-v-e2844fbc],
.jump-btn[disabled][data-v-e2844fbc] {
  opacity: 0.35;
  cursor: not-allowed;
}
.catalog-card[data-v-e2844fbc] {
  display: flex;
  flex-direction: column;
  /* 테마별 토큰 — 다크: var(--card-bg) (배경 위에서 한 단계 떠올림),
     라이트: 흰색 (페이지보다 밝게). 카드가 항상 페이지보다 도드라지게. */
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg, 8px);
  overflow: hidden;
  cursor: pointer;
  /* 정지 상태에서도 약간 떠 있는 느낌 — depth 가 격자를 살림. 테마별로 그림자 톤 다름. */
  box-shadow: var(--card-shadow);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.catalog-card[data-v-e2844fbc]:hover {
  transform: translateY(-3px);
  box-shadow: var(--card-shadow-hover);
  border-color: var(--primary-color);
}
.thumb[data-v-e2844fbc] {
  position: relative;
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: center;
  justify-content: center;
  /* 테마별 썸네일 배경 (style.css 의 --thumb-bg).
     다크: 짙은 검정 + 형광 그린 radial. 라이트: 슬레이트 종이 + 옅은 듀얼 톤 highlight. */
  background: var(--thumb-bg);
  overflow: hidden;
}
.thumb > img[data-v-e2844fbc] { width: 100%; height: 100%; object-fit: cover;
}

/* 책 메타포: 표지(이미지) + 좌측 책등 + 우측 페이지 단면(두께 = total_pages) */
.book[data-v-e2844fbc] {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 78%;
  aspect-ratio: 3 / 4;
  --book-thickness: 8px;
  background: var(--surface-color);
  border-radius: 1px 4px 4px 1px;
  box-shadow: var(--shadow-lg);
  transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.18s ease;
  /* overflow: visible 유지 — .book-pages 가 우측으로 확장 */
}
.book-single[data-v-e2844fbc] { height: 82%;
}
.book-cover[data-v-e2844fbc] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
  background: var(--surface-color);
}
/* 가로 썸네일을 90° 반시계방향 회전해서 세로 책 표지에 안 짤리고 들어가게.
   부모(.book)는 aspect-ratio 3/4. 회전 후 박스 안을 가득 채우려면
   회전 전 박스 크기는 width = parent_height (= 100% × 4/3),
                    height = parent_width  (= 100% × 3/4) 이어야 한다. */
.book-cover.is-landscape[data-v-e2844fbc] {
  inset: auto;
  top: 50%;
  left: 50%;
  width: calc(100% * 4 / 3);
  height: calc(100% * 3 / 4);
  transform: translate(-50%, -50%) rotate(-90deg);
  transform-origin: center center;
}
/* tokens-ignore-start: 책 메타포 입체감 — 의미색이 아닌 장식 아트 그라데이션/그림자 */
/* 좌측 책등 — 어두운 띠로 묶인 부분 표현 */
.book-spine[data-v-e2844fbc] {
  position: absolute;
  top: 0; bottom: 0;
  left: 0;
  width: 8px;
  background: linear-gradient(
    to right,
    rgba(0, 0, 0, 0.55),
    rgba(0, 0, 0, 0.25) 50%,
    rgba(0, 0, 0, 0.05) 90%,
    transparent
  );
  border-radius: 1px 0 0 1px;
  pointer-events: none;
  z-index: 2;
}
/* 우측 페이지 단면 — 두께가 곧 페이지 수.
   repeating-linear-gradient 로 종이 결을 표현. 색은 라이트/다크 공통의 종이톤. */
.book-pages[data-v-e2844fbc] {
  position: absolute;
  top: 1.5%;
  bottom: 1.5%;
  right: calc(var(--book-thickness) * -1);
  width: var(--book-thickness);
  background:
    repeating-linear-gradient(
      to right,
      var(--deco-book-page) 0,
      var(--deco-book-page) 1px,
      var(--deco-book-page-line) 1px,
      var(--deco-book-page-line) 2px
    );
  border-radius: 0 3px 3px 0;
  box-shadow:
    inset -1px 0 0 rgba(0, 0, 0, 0.25),
    inset 1px 0 0 rgba(0, 0, 0, 0.18),
    1px 2px 4px rgba(0, 0, 0, 0.25);
  pointer-events: none;
  z-index: 2;
}
/* 책꽂이 — 다중 문서 */
.book-stack[data-v-e2844fbc] {
  position: relative;
  width: 100%;
  height: 100%;
}
/* 책꽂이 표시 — 모든 책이 baseline 에 발을 맞춰 기댐 */
.book-stacked[data-v-e2844fbc] {
  top: auto;
  bottom: 8%;
  height: 78%;
  transform-origin: 50% 100%;     /* 바닥을 축으로 기댐 */
}
/* 책꽂이 baseline — 옅은 그림자 라인으로 책 발 부분이 닿아 있음을 암시 */
.book-stack[data-v-e2844fbc]::after {
  content: '';
  position: absolute;
  left: 6%;
  right: 6%;
  bottom: 6%;
  height: 2px;
  background: linear-gradient(
    to right,
    transparent 0%,
    rgba(0, 0, 0, 0.25) 20%,
    rgba(0, 0, 0, 0.25) 80%,
    transparent 100%
  );
  border-radius: 2px;
  pointer-events: none;
}
/* tokens-ignore-end */
.catalog-card:hover .book[data-v-e2844fbc] {
  filter: brightness(1.05);
}
.thumb-placeholder[data-v-e2844fbc] {
  padding: var(--space-3, 12px);
  text-align: center;
}
.thumb-doc-type[data-v-e2844fbc] {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text-primary);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.3;
}
.thumb-badge[data-v-e2844fbc] {
  position: absolute;
  top: 10px; left: 10px;
  background: var(--primary-color);
  color: var(--color-white);
  font-size: 0.7rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
  letter-spacing: 0.05em;
  z-index: 5;          /* 페이지 이미지/부채꼴 위에 항상 노출 */
}
.thumb-published-at[data-v-e2844fbc] {
  position: absolute;
  top: 10px; right: 10px;
  color: var(--text-secondary);
  font-size: 0.65rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
  z-index: 5;
  pointer-events: none;
  /* 책 표지/배경 위에서도 가독성 — 옅은 그림자만 */
  text-shadow: var(--shadow-sm);
}

/* 카드 본문 */
.card-body[data-v-e2844fbc] {
  padding: var(--space-3, 12px) var(--space-4, 16px) var(--space-4, 16px);
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;                /* 남는 세로 공간 차지 → meta 가 바닥으로 밀림 */
}
.card-brand[data-v-e2844fbc] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  color: var(--text-secondary);
}
.card-favicon[data-v-e2844fbc] {
  width: 14px;
  height: 14px;
  border-radius: 3px;
  object-fit: contain;
  flex-shrink: 0;
}
.card-favicon--initial[data-v-e2844fbc] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--primary-color);
  color: var(--color-white);
  font-size: 0.65rem;
  font-weight: 700;
  border-radius: 50%;
}
.card-title[data-v-e2844fbc] {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* 판매시기 — 제목 아래 한 줄, 살짝 흐리게 */
.card-sales[data-v-e2844fbc] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.75rem;
  color: var(--text-tertiary, var(--text-secondary));
  opacity: 0.85;
}
.card-sales i[data-v-e2844fbc] { font-size: 0.7rem; opacity: 0.7;
}
.card-meta[data-v-e2844fbc] {
  display: flex;
  align-items: center;
  justify-content: center;     /* 메타 뱃지 가운데 정렬 */
  gap: var(--space-3, 12px);
  font-size: 0.78rem;
  color: var(--text-secondary);
  flex-wrap: wrap;
}
.card-meta > span[data-v-e2844fbc] {
  white-space: nowrap;     /* 각 항목(아이콘+숫자+단위) 한 덩어리로 유지 */
}
.card-meta i[data-v-e2844fbc] { margin-right: 0.2rem;
}
.card-meta-right[data-v-e2844fbc] { margin-left: auto;
}
/* 좋아요/싫어요 버튼 — meta 줄에 같이 배치, 카드 클릭(상세 이동) 과 분리 */
.reaction-btn[data-v-e2844fbc] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 6px);
  background: transparent;
  color: var(--text-secondary);
  font: inherit;
  font-size: 0.78rem;
  cursor: pointer;
  transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
  white-space: nowrap;
}
.reaction-btn[data-v-e2844fbc]:hover:not(:disabled) {
  color: var(--text-primary);
  background: var(--surface-hover);
}
.reaction-btn.active[data-v-e2844fbc] {
  color: var(--primary-color);
  border-color: var(--primary-color);
  background: var(--surface-primary-soft);
  animation: reaction-flash-e2844fbc 0.45s ease-out;
}
.reaction-btn[data-v-e2844fbc]:disabled { opacity: 0.55; cursor: progress;
}
.reaction-btn i[data-v-e2844fbc] { margin-right: 0; transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.reaction-btn[data-v-e2844fbc]:active:not(:disabled) { transform: scale(0.94);
}
.reaction-btn.active i[data-v-e2844fbc] { animation: reaction-pop-e2844fbc 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes reaction-pop-e2844fbc {
0%   { transform: scale(0.7) rotate(-12deg);
}
55%  { transform: scale(1.45) rotate(8deg);
}
100% { transform: scale(1) rotate(0);
}
}
@keyframes reaction-flash-e2844fbc {
0%   { box-shadow: 0 0 0 0 rgba(var(--primary-rgb), 0.45);
}
100% { box-shadow: 0 0 0 10px transparent;
}
}
/* 카드 바닥 줄 — 좋아요/싫어요(왼쪽) + 가격(오른쪽). margin-top:auto 로 카드 하단에 고정. */
.card-bottom-row[data-v-e2844fbc] {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2, 8px);
}
.card-reactions[data-v-e2844fbc] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
/* 가격 — 강조색(primary). 상세 페이지의 purchase-price__value 와 동일 색. */
.card-price[data-v-e2844fbc] {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--primary-color);
  white-space: nowrap;
  letter-spacing: -0.01em;
  margin-left: auto;
}
.card-price--strike[data-v-e2844fbc] {
  text-decoration: line-through;
  text-decoration-color: currentColor;
  text-decoration-thickness: 2px;
  opacity: 0.7;
}
.card-type-badge[data-v-e2844fbc] {
  margin-left: auto;
  font-size: 0.68rem;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 4px;
  background: var(--surface-primary-soft);
  color: var(--primary-color);
  border: 1px solid var(--surface-primary-soft);
  white-space: nowrap;
  flex-shrink: 0;
}


/* 폭·높이 고정 → 상태가 바뀌어도 헤더 레이아웃이 흔들리지 않음 */
.sort-ind[data-v-c89050dc] {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 0.8em;
  height: 1.1em;
  flex-shrink: 0;
  line-height: 0;
}
.sort-ind__pair-up[data-v-c89050dc],
.sort-ind__pair-down[data-v-c89050dc] {
  font-size: 0.7em;
  line-height: 0.62;
  color: var(--text-tertiary);
  opacity: 0.45;
}
.sort-ind__active[data-v-c89050dc] {
  font-size: 0.95em;
  color: var(--primary-color);
}

/* 기본 스타일은 최소화 — 호출처가 넘긴 class(.form-input 등)가 모양을 결정.
   단독 사용 시에도 깨지지 않도록 폭만 기본값으로 둔다. */
.app-number-input[data-v-72a84d16] {
  box-sizing: border-box;
  width: 100%;
}

.app-radio[data-v-1bd63b80] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  cursor: pointer;
  user-select: none;
}
.app-radio--disabled[data-v-1bd63b80] {
  opacity: 0.6;
  cursor: not-allowed;
}

/* 네이티브 입력은 숨기되 접근성·포커스는 유지 */
.app-radio__input[data-v-1bd63b80] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  margin: 0;
}
.app-radio__dot[data-v-1bd63b80] {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-full);
  background: var(--surface-color);
  transition: border-color var(--transition-base);
}

/* 선택 시 가운데 primary 점 */
.app-radio__input:checked + .app-radio__dot[data-v-1bd63b80] {
  border-color: var(--primary-color);
}
.app-radio__input:checked + .app-radio__dot[data-v-1bd63b80]::after {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: var(--radius-full);
  background: var(--primary-color);
}
.app-radio__input:focus-visible + .app-radio__dot[data-v-1bd63b80] {
  box-shadow: var(--ring-focus);
}
.app-radio__label[data-v-1bd63b80] {
  font-size: var(--font-md);
  color: var(--text-primary);
}

.tsm[data-v-4ebb99d4] {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}
.tsm-section__title[data-v-4ebb99d4] {
  margin: 0 0 var(--space-2);
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
}
.tsm-hint[data-v-4ebb99d4] {
  margin: 0 0 var(--space-3);
  font-size: var(--font-sm);
  color: var(--text-tertiary);
}
.tsm-radio-row[data-v-4ebb99d4] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}
.tsm-radio[data-v-4ebb99d4] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.tsm-cols__head[data-v-4ebb99d4],
.tsm-col[data-v-4ebb99d4] {
  display: grid;
  grid-template-columns: 24px 28px 1fr 120px 96px;
  align-items: center;
  gap: var(--space-2);
}
.tsm-col__overflow[data-v-4ebb99d4] {
  min-width: 0;
}
.tsm-cols__head[data-v-4ebb99d4] {
  padding: 0 var(--space-2) var(--space-1);
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.tsm-cols[data-v-4ebb99d4] {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.tsm-col[data-v-4ebb99d4] {
  padding: var(--space-2);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--surface-color);
}
.tsm-col--drag-over[data-v-4ebb99d4] {
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.tsm-col--hidden[data-v-4ebb99d4] {
  opacity: 0.55;
}
.tsm-col__handle[data-v-4ebb99d4] {
  display: flex;
  justify-content: center;
  color: var(--text-tertiary);
  cursor: grab;
}
.tsm-col__vis[data-v-4ebb99d4] {
  display: flex;
  justify-content: center;
}
.tsm-col__label[data-v-4ebb99d4] {
  width: 100%;
  height: var(--control-height-sm);
}
.tsm-col__width[data-v-4ebb99d4] {
  width: 96px;
  height: var(--control-height-sm);
  padding: 0 var(--space-2);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  font-size: var(--font-sm);
}

.lvs[data-v-60648e31] {
  width: 100%;
  height: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.lvs__inner[data-v-60648e31] {
  position: relative;
  width: 100%;
}
.lvs__item[data-v-60648e31] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  box-sizing: border-box;
}

.list-body[data-v-09ffc966] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  position: relative;
}

/* 상태 표시 (초기 로딩 / 빈 결과 / 에러) */
.list-body__state[data-v-09ffc966] {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  padding: var(--space-12);
  color: var(--text-tertiary);
}
.list-body__state-icon[data-v-09ffc966] {
  font-size: var(--font-2xl);
  opacity: 0.5;
}

/* 테이블 헤더 — 가로 스크롤은 바디와 동기(translateX), clip 으로 넘침 숨김.
   배경 띠 없이 하단 보더 + semibold + 옅은 글자색으로 헤더를 구분(모던 스타일). */
.list-body__head-clip[data-v-09ffc966] {
  overflow: hidden;
  flex-shrink: 0;
  border-bottom: 1px solid var(--border-color);
  position: relative;
}

/* 설정 버튼 — 헤더 행 우측 트레일링 트랙 위에 겹쳐 배치(별도 행 차지 안 함) */
.list-body__settings-btn[data-v-09ffc966] {
  position: absolute;
  top: 50%;
  right: var(--space-1);
  transform: translateY(-50%);
  z-index: 3;
}
.list-body__head[data-v-09ffc966] {
  display: grid;
  align-items: center;
}
.list-body__scroller[data-v-09ffc966] {
  flex: 1;
  min-height: 0;
}

/* auto-height 모드 — 부모를 채우지 않고 데이터 양에 맞춰 높이 결정(maxHeight 상한) */
.list-body.is-auto-height[data-v-09ffc966] {
  flex: 0 0 auto;
}
.list-body.is-auto-height .list-body__scroller[data-v-09ffc966] {
  flex: 0 0 auto;
}

/* 셀 공통 — 기본은 줄바꿈(값이 잘려 사라지지 않음). 측정형 가상 스크롤이 행 높이를 잰다. */
/* min-width: 0 — 그리드 아이템 기본값(auto)이면 셀이 트랙보다 못 줄어 내용이 오른쪽으로
   넘쳐 잘린다. 0 으로 둬야 트랙 폭에 맞춰 줄어들고 줄바꿈 / 말줄임이 동작한다. */
.list-body__cell[data-v-09ffc966] {
  padding: var(--space-2) var(--space-4);
  font-size: var(--font-md);
  color: var(--text-primary);
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* 넘침 처리 — 설정 모달에서 컬럼별 지정. ov-wrap 은 기본값이라 별도 규칙 없음. */
/* 말줄임 — 한 줄 유지 + 넘치면 … */
.list-body__cell.ov-ellipsis[data-v-09ffc966] {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 가림 — 한 줄 유지 + 넘치면 그냥 잘림(… 없음) */
.list-body__cell.ov-clip[data-v-09ffc966] {
  white-space: nowrap;
  overflow: hidden;
}
.list-body__cell.is-center[data-v-09ffc966] { text-align: center;
}
.list-body__cell.is-right[data-v-09ffc966] { text-align: right;
}
.list-body__cell--check[data-v-09ffc966] {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

/* 헤더 셀 — semibold + 옅은 글자색 + 하단 보더로 헤더임을 구분(배경 띠 없음).
   헤더는 본문과 달리 항상 한 줄(줄바꿈 기본값을 덮어씀). */
.list-body__hcell[data-v-09ffc966] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  height: var(--list-row-h);
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-secondary);
  user-select: none;
  position: relative;
  white-space: nowrap;
}
.list-body__hcell.is-center[data-v-09ffc966] { justify-content: center;
}
.list-body__hcell.is-right[data-v-09ffc966] { justify-content: flex-end;
}
.list-body__hcell.is-sortable[data-v-09ffc966] {
  cursor: pointer;
  transition: color var(--transition-fast);
}

/* 정렬 가능 컬럼 — 호버 시 / 정렬 중일 때 라벨이 primary 색으로 (클릭 힌트·정렬 표시) */
.list-body__hcell.is-sortable[data-v-09ffc966]:hover { color: var(--primary-color);
}
.list-body__hcell.is-sorted[data-v-09ffc966] { color: var(--primary-color);
}

/* 컬럼 순서변경 드래그 오버 표식 */
.list-body__hcell.is-drag-over[data-v-09ffc966] {
  box-shadow: inset 3px 0 0 0 var(--primary-color);
}

/* 컬럼 경계 | — 헤더 셀 우측 가장자리의 hover 존. 리사이즈 핸들 + 위쪽 + 뱃지를 묶는다. */
.list-body__boundary[data-v-09ffc966] {
  position: absolute;
  top: 0;
  right: 0;
  width: 11px;
  height: 100%;
  z-index: 4;
}
/* 경계 hover 시 primary 세로선(=|). 순수 장식 — pointer-events:none 으로
   커서가 이 선을 통과해 리사이즈 핸들(col-resize)을 그대로 받게 한다.
   (없으면 정렬 헤더의 cursor:pointer 를 상속해 선 위에서 손 모양이 됨) */
.list-body__boundary[data-v-09ffc966]::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 4px;
  width: 2px;
  background: var(--primary-color);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-fast);
}
.list-body__boundary[data-v-09ffc966]:hover::after {
  opacity: 1;
}
/* 리사이즈 드래그 핸들 — 경계 전체를 덮는 투명 히트영역 */
.list-body__resize[data-v-09ffc966] {
  position: absolute;
  inset: 0;
  cursor: col-resize;
}

/* 컬럼 숨김 버튼 — 셀 중앙 hover 시 노출되는 오버레이(레이아웃 자리 안 먹음).
   경계(|) hover 중에는 감춘다 — 숨김 조작과 경계 조작은 상호배타. */
.list-body__col-hide[data-v-09ffc966] {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  border: none;
  border-radius: var(--radius-sm);
  background: var(--surface-color);
  color: var(--text-tertiary);
  font-size: 11px;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  z-index: 3;
  transition: opacity var(--transition-fast), color var(--transition-fast);
}
.list-body__hcell:hover .list-body__col-hide[data-v-09ffc966] {
  opacity: 1;
  pointer-events: auto;
}
/* 경계 hover 중엔 숨김 버튼을 감춘다 */
.list-body__hcell:has(.list-body__boundary:hover) .list-body__col-hide[data-v-09ffc966] {
  opacity: 0;
  pointer-events: none;
}
.list-body__col-hide[data-v-09ffc966]:hover {
  color: var(--primary-color);
}

/* 숨긴 컬럼 추가 — 경계 | 위쪽의 + 뱃지. 경계 hover(또는 메뉴 열림) 시에만 노출.
   head-clip overflow 에 잘리지 않게 셀 안쪽(top 양수)에 둔다. */
.list-body__col-add[data-v-09ffc966] {
  position: absolute;
  top: 0;
  /* 16px 뱃지의 중심을 경계선(::after, right:4px)에 맞춤 → right: 4 - 8 */
  right: -4px;
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  background: var(--surface-color);
  color: var(--text-secondary);
  font-size: 9px;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  z-index: 6;
  transition: opacity var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}
.list-body__boundary:hover .list-body__col-add[data-v-09ffc966],
.list-body__col-add.is-open[data-v-09ffc966] {
  opacity: 1;
  pointer-events: auto;
}
.list-body__col-add[data-v-09ffc966]:hover {
  border-color: var(--primary-color);
  color: var(--primary-color);
}

/* 숨긴 컬럼 선택 드롭다운 */
.list-body__add-menu[data-v-09ffc966] {
  position: fixed;
  z-index: 20;
  min-width: 160px;
  max-height: 280px;
  overflow-y: auto;
  margin: var(--space-1) 0 0;
  padding: var(--space-1);
  list-style: none;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
}
.list-body__add-item[data-v-09ffc966] {
  padding: var(--space-2) var(--space-3);
  font-size: var(--font-sm);
  font-weight: var(--font-weight-regular);
  color: var(--text-primary);
  white-space: nowrap;
  cursor: pointer;
  border-radius: var(--radius-sm);
}
.list-body__add-item[data-v-09ffc966]:hover {
  background: var(--surface-hover);
  color: var(--primary-color);
}

/* 테이블 행 */
/* 행 래퍼 — 셀 행 + (선택적) 상세 행을 하나의 가상 항목으로 묶음 */
.list-body__rowwrap[data-v-09ffc966] {
  border-bottom: 1px solid var(--border-color);
}

/* zebra 줄무늬 — 교대 행에 옅은 배경 (가독성). 선택 행이 우선하도록 위에 둔다. */
.list-body__rowwrap.is-stripe[data-v-09ffc966] { background: var(--surface-stripe);
}
.list-body__rowwrap.is-selected[data-v-09ffc966] { background: var(--surface-active);
}
.list-body__row[data-v-09ffc966] {
  display: grid;
  align-items: center;
  min-height: var(--list-row-h);
  cursor: pointer;
  transition: background var(--transition-fast);
}
.list-body__row[data-v-09ffc966]:hover { background: var(--surface-hover);
}

/* 행 클릭 비활성 — 커서·hover 강조 억제 */
.list-body__row.is-non-interactive[data-v-09ffc966] { cursor: default;
}
.list-body__row.is-non-interactive[data-v-09ffc966]:hover { background: transparent;
}

/* 행 상세 — 셀 행 아래 추가 정보 */
.list-body__row-detail[data-v-09ffc966] {
  padding: var(--space-2) var(--space-4) var(--space-3);
  font-size: var(--font-sm);
  color: var(--text-secondary);
}

/* 카드 — 내용에 따른 가변 높이 (측정형 가상 스크롤) */
.list-body__card[data-v-09ffc966] {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  box-sizing: border-box;
  border-bottom: 1px solid var(--border-color);
  cursor: pointer;
  transition: background var(--transition-fast);
}
.list-body__card[data-v-09ffc966]:hover { background: var(--surface-hover);
}
.list-body__card.is-selected[data-v-09ffc966] { background: var(--surface-active);
}
.list-body__card.is-non-interactive[data-v-09ffc966] { cursor: default;
}
.list-body__card.is-non-interactive[data-v-09ffc966]:hover { background: transparent;
}
.list-body__card-check[data-v-09ffc966] {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

/* 카드 미디어 영역 — cardRole: 'media' 컬럼(썸네일 등)이 좌측에 고정 */
.list-body__card-media[data-v-09ffc966] {
  display: flex;
  align-items: flex-start;
  flex-shrink: 0;
}

/* 카드 작업 버튼 영역 — cardRole: 'actions' 컬럼이 우측 상단에 고정 */
.list-body__card-actions[data-v-09ffc966] {
  display: flex;
  align-items: flex-start;
  gap: var(--space-1);
  flex-shrink: 0;
}

/* 카드 본문 — #card 슬롯(또는 기본 cardRole 렌더)이 들어가는 영역 */
.list-body__card-body[data-v-09ffc966] {
  flex: 1;
  min-width: 0;
}
.list-body__card-main[data-v-09ffc966] {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.list-body__card-title[data-v-09ffc966] {
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.list-body__card-subtitle[data-v-09ffc966] {
  font-size: var(--font-sm);
  color: var(--text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.list-body__card-meta[data-v-09ffc966] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-3);
  margin-top: auto;
}

/* 메타 항목 — `레이블 : 값` 을 한 줄에. 슬롯 값이 block 이어도 flex 로 같은 줄 유지. */
.list-body__card-metaitem[data-v-09ffc966] {
  display: flex;
  align-items: baseline;
  gap: var(--space-1);
  min-width: 0;
  max-width: 100%;
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}

/* 메타 레이블 — 값이 길어도 줄이 나뉘지 않게 고정 폭 */
.list-body__card-metalabel[data-v-09ffc966] {
  flex-shrink: 0;
}

/* 메타 값 — 길면 같은 줄에서 ellipsis */
.list-body__card-metavalue[data-v-09ffc966] {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 추가 적재 스피너 */
.list-body__more[data-v-09ffc966] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3);
  font-size: var(--font-sm);
  color: var(--text-tertiary);
  flex-shrink: 0;
}

.tab-nav[data-v-bc497c2b] {
  display: flex;
  flex-wrap: wrap;
  /* 행 간격 0 — 여러 줄로 wrap 돼도 줄끼리 붙어 한 묶음으로 보이게.
     열 간격만 유지 */
  gap: 0 var(--space-2);
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
  flex-shrink: 0; /* flex 컨테이너 안에서 탭 바가 줄어들지 않도록 */
}
.tab-nav__tab[data-v-bc497c2b] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px; /* nav 의 1px border 위에 탭의 border 가 겹치도록 */
  color: var(--text-secondary);
  font-size: var(--font-md);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-tight);
  cursor: pointer;
  transition:
    color var(--transition-fast),
    background var(--transition-fast);
}
.tab-nav__tab[data-v-bc497c2b]:hover:not(:disabled) {
  color: var(--text-primary);
  background: var(--surface-hover);
}
.tab-nav__tab[data-v-bc497c2b]:focus-visible {
  outline: none;
  box-shadow: var(--ring-focus);
  border-radius: var(--radius-sm);
}
.tab-nav__tab--active[data-v-bc497c2b] {
  color: var(--primary-color);
  border-bottom-color: var(--primary-color);
  font-weight: var(--font-weight-semibold);
}
.tab-nav__tab[data-v-bc497c2b]:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.tab-nav__icon[data-v-bc497c2b] {
  font-size: var(--font-base);
}
.tab-nav__icon--pulse[data-v-bc497c2b] {
  animation: tabIconPulse-bc497c2b 1.2s ease-in-out infinite;
  color: var(--primary-color);
  filter: drop-shadow(0 0 4px var(--primary-color));
}
@keyframes tabIconPulse-bc497c2b {
0%,
  100% {
    opacity: 1;
}
50% {
    opacity: 0.4;
}
}
.tab-nav__count[data-v-bc497c2b] {
  color: var(--text-tertiary, var(--text-secondary));
  font-weight: var(--font-weight-regular);
  font-size: var(--font-sm);
}

/* 의미 강조 톤 — count 색 */
.tab-nav__tab[data-tone='warning'] .tab-nav__count[data-v-bc497c2b] {
  color: var(--color-warning);
}
.tab-nav__tab[data-tone='danger'] .tab-nav__count[data-v-bc497c2b] {
  color: var(--color-danger);
}

/* 알림 뱃지 — 빨간 pill */
.tab-nav__badge[data-v-bc497c2b] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.125rem;
  height: 1.125rem;
  padding: 0 var(--space-1);
  border-radius: var(--radius-full);
  background: var(--color-danger);
  color: white;
  font-size: var(--font-xs);
  font-weight: var(--font-weight-bold);
  line-height: 1;
}

/* 탭 건수는 모든 variant 에서 (n) 표기 — 단일 분류 제목 옆 건수 표기와 통일 */
.tab-nav__count[data-v-bc497c2b]::before {
  content: '(';
}
.tab-nav__count[data-v-bc497c2b]::after {
  content: ')';
}

/* === sub variant — 페이지 탭 내부의 서브 탭 ===
   탭 수가 적으므로 너비를 균등 분할해 바를 꽉 채우고, 폰트는 약간 작게. */
.tab-nav--sub .tab-nav__tab[data-v-bc497c2b] {
  flex: 1 1 0;
  justify-content: center;
  font-size: var(--font-sm);
}

/* 메인 탭과의 위·아래 간격을 sub 변종이 직접 소유한다.
   화면별 래퍼가 padding/margin 으로 간격을 만들지 않게 해 — 모든 서브 탭이
   동일한 간격을 갖도록 디자인 시스템 차원에서 강제한다 (간격 = --space-2 고정). */
.tab-nav--sub[data-v-bc497c2b] {
  margin: var(--space-2) 0;
}

/* === 모바일 — 아이콘이 있는 탭은 라벨을 숨겨 아이콘만 표시 === */
@media (max-width: 768px) {
.tab-nav[data-v-bc497c2b] {
    gap: 0;
}
.tab-nav__tab[data-v-bc497c2b] {
    padding: var(--space-2);
    font-size: var(--font-sm);
}
.tab-nav__tab--has-icon .tab-nav__label[data-v-bc497c2b] {
    display: none;
}
  /* sub 변종은 탭 수가 적어 모바일에서도 라벨을 유지한다 */
.tab-nav--sub .tab-nav__tab--has-icon .tab-nav__label[data-v-bc497c2b] {
    display: inline;
}
}

/* === 좁은 화면 — filter 변종은 건수를 라벨 아래 줄로 내려 가로 폭 절약 === */
@media (max-width: 480px) {
.tab-nav--filter .tab-nav__tab[data-v-bc497c2b] {
    flex-direction: column;
    gap: var(--space-1);
}
.tab-nav--filter .tab-nav__count[data-v-bc497c2b] {
    font-size: var(--font-xs);
    line-height: 1;
}
}

.usage-help[data-v-67abb0b6] {
  display: flex;
  flex-direction: column;
  gap: var(--space-6, 24px);
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--text-primary);
}
.usage-help__section h3[data-v-67abb0b6] {
  margin: 0 0 var(--space-2, 8px);
  font-size: 1.05rem;
  color: var(--text-primary);
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 6px;
}
.usage-help__section h4[data-v-67abb0b6] {
  margin: var(--space-4, 16px) 0 var(--space-2, 8px);
  font-size: 0.95rem;
  color: var(--text-primary);
}
.usage-help p[data-v-67abb0b6] {
  margin: 0 0 var(--space-2, 8px);
  color: var(--text-secondary);
}
.usage-help code[data-v-67abb0b6] {
  font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 0.85em;
  background: var(--surface-color-secondary);
  padding: 1px 6px;
  border-radius: var(--radius-sm, 4px);
  color: var(--text-primary);
}
.usage-help a[data-v-67abb0b6] {
  color: var(--primary-color);
  text-decoration: none;
}
.usage-help a[data-v-67abb0b6]:hover {
  text-decoration: underline;
}
.bullet-list[data-v-67abb0b6] {
  margin: var(--space-2, 8px) 0;
  padding-left: 22px;
  color: var(--text-primary);
}
.bullet-list li[data-v-67abb0b6] {
  margin-bottom: 4px;
}

/* ER 다이어그램 — SVG 컨테이너 */
.er-diagram[data-v-67abb0b6] {
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 6px);
  padding: var(--space-3, 12px);
  margin: 0 0 var(--space-3, 12px);
  overflow-x: auto;
}
.er-diagram svg[data-v-67abb0b6] {
  display: block;
  width: 100%;
  height: auto;
  max-width: 720px;
  margin: 0 auto;
}

/* 테이블 상세 — collapsible */
.table-block[data-v-67abb0b6] {
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 6px);
  margin-bottom: var(--space-3, 12px);
  background: var(--surface-color);
  overflow: hidden;
}
.table-block summary[data-v-67abb0b6] {
  padding: var(--space-2, 8px) var(--space-3, 12px);
  cursor: pointer;
  font-weight: 600;
  background: var(--surface-color-secondary);
  user-select: none;
}
.table-block summary code[data-v-67abb0b6] {
  background: transparent;
  padding: 0;
  font-size: 1em;
  color: var(--primary-color);
}
.table-block summary[data-v-67abb0b6]::marker {
  color: var(--text-secondary);
}
.table-block[open] summary[data-v-67abb0b6] {
  border-bottom: 1px solid var(--border-color);
}
.schema-table[data-v-67abb0b6] {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}
.schema-table th[data-v-67abb0b6],
.schema-table td[data-v-67abb0b6] {
  padding: 6px 12px;
  text-align: left;
  border-bottom: 1px solid var(--border-color);
  vertical-align: top;
}
.schema-table th[data-v-67abb0b6] {
  background: var(--surface-color-secondary);
  font-weight: 600;
  color: var(--text-secondary);
}
.schema-table tr:last-child td[data-v-67abb0b6] {
  border-bottom: none;
}
.schema-table td[data-v-67abb0b6]:first-child {
  font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
  white-space: nowrap;
  color: var(--text-primary);
}
.schema-table td[data-v-67abb0b6]:nth-child(2) {
  color: var(--text-secondary);
  white-space: nowrap;
}
.tool-list[data-v-67abb0b6] {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 12px);
}
.tool-list > li[data-v-67abb0b6] {
  padding: var(--space-3, 12px);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 6px);
}
.tool-list > li p[data-v-67abb0b6] {
  margin: 6px 0 0;
  font-size: 0.85rem;
}

/* 코드 블록 */
.code-block[data-v-67abb0b6] {
  position: relative;
  margin-top: var(--space-2, 8px);
}
.code-block pre[data-v-67abb0b6] {
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 6px);
  padding: var(--space-3, 12px);
  margin: 0;
  overflow-x: auto;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--text-primary);
}
.code-block pre code[data-v-67abb0b6] {
  background: transparent;
  padding: 0;
  font-size: inherit;
  color: inherit;
}
.code-block__copy[data-v-67abb0b6] {
  position: absolute;
  top: 8px;
  right: 8px;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm, 4px);
  color: var(--text-secondary);
  padding: 2px 8px;
  font-size: 0.75rem;
  cursor: pointer;
  opacity: 0.7;
}
.code-block__copy[data-v-67abb0b6]:hover {
  opacity: 1;
  color: var(--primary-color);
  border-color: var(--primary-color);
}
.hint[data-v-67abb0b6] {
  margin: 6px 0 0;
  font-size: 0.8rem;
  color: var(--text-secondary);
}

.rating-stars[data-v-4ffe5364] {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.rating-stars__star[data-v-4ffe5364] {
  background: none;
  border: none;
  padding: 2px;
  cursor: pointer;
  color: var(--text-tertiary, var(--text-secondary));
  font-size: 1.05rem;
  line-height: 1;
  transition: color 0.1s ease, transform 0.1s ease;
}
.rating-stars__star[data-v-4ffe5364]:hover:not(:disabled) {
  transform: scale(1.1);
}
.rating-stars__star--filled[data-v-4ffe5364] {
  color: var(--color-warning);
}
.rating-stars__star[data-v-4ffe5364]:disabled {
  cursor: default;
}
.rating-stars__clear[data-v-4ffe5364] {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-secondary);
  margin-left: 4px;
  font-size: 0.85rem;
  padding: 2px 4px;
}
.rating-stars__clear[data-v-4ffe5364]:hover {
  color: var(--color-danger);
}
.rating-stars--readonly .rating-stars__star[data-v-4ffe5364] {
  cursor: default;
}

.opinion-card[data-v-b3b2898a] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 8px);
  padding: var(--space-3, 12px) var(--space-4, 16px);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 6px);
}
.opinion-card--reply[data-v-b3b2898a] {
  background: var(--surface-color-secondary);
}
.opinion-card__header[data-v-b3b2898a] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2, 8px);
  flex-wrap: wrap;
}
.opinion-card__author[data-v-b3b2898a] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2, 8px);
  flex-wrap: wrap;
}
.opinion-card__avatar[data-v-b3b2898a] {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--surface-color-secondary);
}
.opinion-card__avatar--initial[data-v-b3b2898a] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: var(--text-secondary);
}
.opinion-card__name[data-v-b3b2898a] {
  font-weight: 600;
  color: var(--text-primary);
}
.opinion-card__kind-badge[data-v-b3b2898a] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  font-size: 0.78rem;
  font-weight: 600;
  border-radius: 999px;
  border: 1px solid transparent;
}
.opinion-card__kind-badge--suggestion[data-v-b3b2898a] {
  color: var(--primary-color);
  background: var(--surface-primary-soft);
  border-color: var(--surface-primary-soft);
}
.opinion-card__kind-badge--question[data-v-b3b2898a] {
  color: var(--color-purple);
  background: var(--surface-purple-soft);
  border-color: var(--surface-purple-soft);
}
.opinion-card__kind-badge--error_report[data-v-b3b2898a] {
  color: var(--color-danger);
  background: var(--surface-danger-soft);
  border-color: var(--surface-danger-soft);
}
.opinion-card__kind-badge--use_case[data-v-b3b2898a] {
  color: var(--color-info);
  background: var(--surface-info-soft);
  border-color: var(--surface-info-soft);
}
.opinion-card__kind-badge--info[data-v-b3b2898a] {
  color: var(--color-warning);
  background: var(--surface-warning-soft);
  border-color: var(--surface-warning-soft);
}
.opinion-card__meta[data-v-b3b2898a] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2, 8px);
  color: var(--text-secondary);
  font-size: 0.8rem;
}
.opinion-card__time[data-v-b3b2898a] {
  white-space: nowrap;
}
.opinion-card__edited[data-v-b3b2898a] {
  font-style: italic;
  font-size: 0.78rem;
}
.opinion-card__body[data-v-b3b2898a] {
  color: var(--text-primary);
  line-height: 1.55;
  word-break: break-word;
}
.opinion-card__body[data-v-b3b2898a] p {
  margin: 0 0 0.5em;
}
.opinion-card__body[data-v-b3b2898a] p:last-child {
  margin-bottom: 0;
}
.opinion-card__body[data-v-b3b2898a] ul,
.opinion-card__body[data-v-b3b2898a] ol {
  padding-left: 1.25rem;
  margin: 0.25em 0;
}
.opinion-card__body[data-v-b3b2898a] blockquote {
  border-left: 3px solid var(--border-color);
  padding-left: 0.75rem;
  margin: 0.5em 0;
  color: var(--text-secondary);
}
.opinion-card__body[data-v-b3b2898a] pre {
  background: var(--surface-muted);
  border-radius: 4px;
  padding: 0.5rem 0.75rem;
  margin: 0.5em 0;
  font-family: 'Fira Code', 'Consolas', monospace;
  font-size: 0.85em;
  white-space: pre-wrap;
}
.opinion-card__body[data-v-b3b2898a] code {
  background: var(--surface-muted);
  border-radius: 3px;
  padding: 0.15em 0.3em;
  font-size: 0.9em;
}
.opinion-card__body[data-v-b3b2898a] a {
  color: var(--primary-color);
  text-decoration: underline;
}
.opinion-card__body[data-v-b3b2898a] img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  margin: 0.4em 0;
}
.opinion-card__footer[data-v-b3b2898a] {
  display: flex;
  gap: var(--space-3, 12px);
  align-items: center;
}
.opinion-card__action[data-v-b3b2898a] {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-secondary);
  font: inherit;
  font-size: 0.85rem;
  padding: 2px 4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.opinion-card__action[data-v-b3b2898a]:hover {
  color: var(--primary-color);
}
.opinion-card__action--danger[data-v-b3b2898a]:hover {
  color: var(--color-danger);
}

.opinions[data-v-b9155379] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 12px);
}
.section-title[data-v-b9155379] {
  font-size: 1.1rem;
  margin: 0;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: var(--space-2, 8px);
}
.section-title--toggle[data-v-b9155379] {
  cursor: pointer;
  user-select: none;
}
.section-title--toggle[data-v-b9155379]:hover {
  color: var(--primary-color);
}
.section-title--toggle[data-v-b9155379]:focus-visible {
  outline: 2px solid var(--primary-color);
  outline-offset: 2px;
  border-radius: var(--radius-sm, 4px);
}
.toggle-chevron[data-v-b9155379] {
  font-size: 0.85em;
  color: var(--text-secondary);
  width: 1em;
  transition: transform 0.15s ease;
}
.opinions__avg[data-v-b9155379] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: var(--space-3, 12px);
  font-size: 0.95rem;
  color: var(--text-primary);
  font-weight: 600;
}
.opinions__avg i[data-v-b9155379] {
  color: var(--color-warning);
}
.opinions__avg-count[data-v-b9155379] {
  font-weight: 400;
  color: var(--text-secondary);
  font-size: 0.85em;
}
.opinions__body[data-v-b9155379] {
  display: flex;
  flex-direction: column;
  gap: var(--space-4, 16px);
}

/* 작성 폼 */
.opinions__composer[data-v-b9155379] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 12px);
  padding: var(--space-4, 16px);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg, 8px);
}
.composer__row[data-v-b9155379] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2, 8px);
  align-items: center;
}
.composer__rating[data-v-b9155379] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2, 8px);
  margin-left: auto;
}
.composer__rating-label[data-v-b9155379] {
  color: var(--text-secondary);
  font-size: 0.85rem;
}
.composer__body[data-v-b9155379] {
  width: 100%;
  resize: vertical;
  padding: var(--space-3, 12px);
  background: var(--surface-color);
  color: var(--text-primary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 6px);
  font: inherit;
  line-height: 1.5;
  box-sizing: border-box;
}
.composer__body[data-v-b9155379]:focus {
  outline: 2px solid var(--primary-color);
  outline-offset: -1px;
}
.composer__actions[data-v-b9155379] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-3, 12px);
}
.composer__hint[data-v-b9155379] {
  margin-right: auto;
  color: var(--text-secondary);
  font-size: 0.8rem;
}

/* 분류 칩 (작성 + 필터 공통 톤) */
.kind-chip[data-v-b9155379] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-secondary);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 999px;
  cursor: pointer;
  user-select: none;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.kind-chip[data-v-b9155379]:hover {
  border-color: var(--primary-color);
}
.kind-chip--active.kind-chip--suggestion[data-v-b9155379] {
  background: var(--surface-primary-soft);
  color: var(--primary-color);
  border-color: var(--surface-primary-soft);
}
.kind-chip--active.kind-chip--question[data-v-b9155379] {
  background: var(--surface-purple-soft);
  color: var(--color-purple);
  border-color: var(--surface-purple-soft);
}
.kind-chip--active.kind-chip--error_report[data-v-b9155379] {
  background: var(--surface-danger-soft);
  color: var(--color-danger);
  border-color: var(--surface-danger-soft);
}
.kind-chip--active.kind-chip--use_case[data-v-b9155379] {
  background: var(--surface-info-soft);
  color: var(--color-info);
  border-color: var(--surface-info-soft);
}
.kind-chip--active.kind-chip--info[data-v-b9155379] {
  background: var(--surface-warning-soft);
  color: var(--color-warning);
  border-color: var(--surface-warning-soft);
}

/* 필터 칩 */
.opinions__filter[data-v-b9155379] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2, 8px);
}
.filter-chip[data-v-b9155379] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  font: inherit;
  font-size: 0.85rem;
  color: var(--text-secondary);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 999px;
  cursor: pointer;
}
.filter-chip[data-v-b9155379]:hover {
  border-color: var(--primary-color);
  color: var(--text-primary);
}
.filter-chip--active[data-v-b9155379] {
  background: var(--primary-color);
  color: var(--color-white);
  border-color: var(--primary-color);
}

/* 목록 */
.opinions__list[data-v-b9155379],
.opinions__replies[data-v-b9155379] {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 12px);
}
.opinions__replies[data-v-b9155379] {
  margin-top: var(--space-2, 8px);
  margin-left: var(--space-6, 24px);
  border-left: 2px solid var(--border-color);
  padding-left: var(--space-3, 12px);
}
.reply-composer[data-v-b9155379] {
  margin-top: var(--space-2, 8px);
  margin-left: var(--space-6, 24px);
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 8px);
}
.state-msg[data-v-b9155379] {
  padding: var(--space-6, 24px);
  text-align: center;
  color: var(--text-secondary);
  background: var(--surface-color-secondary);
  border-radius: var(--radius-md, 6px);
}

/* ──────────────────────────────────────────────────────────────────
   레이아웃 — app-shell__content 가 overflow:hidden 이라 자체 스크롤
   영역(.scroll-area)을 둠. CatalogView 와 동일 패턴.
   ────────────────────────────────────────────────────────────────── */
.catalog-detail-page[data-v-985cd422] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--background-color);
}
.back-bar[data-v-985cd422] {
  flex: 0 0 auto;
  padding: var(--space-3, 12px) var(--space-6, 24px);
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
}
.breadcrumb[data-v-985cd422] {
  display: flex;
  align-items: center;
  gap: var(--space-2, 8px);
  font-size: 0.95rem;
  color: var(--text-secondary);
}
.breadcrumb__link[data-v-985cd422] {
  color: var(--text-secondary);
  text-decoration: none;
}
.breadcrumb__link[data-v-985cd422]:hover {
  color: var(--primary-color);
}
.breadcrumb__sep[data-v-985cd422] {
  color: var(--text-tertiary, var(--text-secondary));
}
.breadcrumb__current[data-v-985cd422] {
  color: var(--text-primary);
  font-weight: 600;
}
.scroll-area[data-v-985cd422] {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}
.content[data-v-985cd422] {
  max-width: 1400px;
  margin: 0 auto;
  padding: var(--space-6, 24px);
  display: flex;
  flex-direction: column;
  gap: var(--space-8, 32px);
}
.state-msg[data-v-985cd422] {
  padding: var(--space-8, 32px);
  text-align: center;
  color: var(--text-secondary);
}

/* ──────────────────────────────────────────────────────────────────
   hero: 좌측 thumb 320×320 고정 + 우측 info column 같은 높이.
   grid-template-rows: 320px 으로 row 높이를 고정 → thumb·info 모두 320px.
   info 는 flex column + spacer 로 가격 박스를 하단에 정렬. → thumb 하단 == 가격 박스 하단.
   ────────────────────────────────────────────────────────────────── */
.hero[data-v-985cd422] {
  display: grid;
  grid-template-columns: 320px 1fr;
  /* 행 높이는 thumb 의 240px + info 컨텐츠 중 큰 쪽으로 자연스럽게 결정.
     긴 제목으로 info 가 길어져도 purchase 박스가 잘리지 않게 고정 높이를 두지 않는다. */
  gap: var(--space-6, 24px);
  align-items: stretch;
}
.hero-thumb[data-v-985cd422] {
  position: relative;
  width: 100%;
  /* min-height 로 기준 240px 확보. info 가 더 길면 grid align-items:stretch 로 thumb 도
     같이 늘어나서 두 박스 하단 끝선이 항상 일치한다. height 를 박으면 stretch 가 무력화됨. */
  min-height: 240px;
}
.hero-thumb--clickable[data-v-985cd422] {
  cursor: pointer;
}
.hero-thumb--clickable:hover .book[data-v-985cd422] {
  filter: brightness(1.06);
  transform: translate(-50%, -52%);
}
.hero-thumb--clickable[data-v-985cd422]:focus-visible {
  outline: 2px solid var(--primary-color);
  outline-offset: 4px;
  border-radius: var(--radius-md, 6px);
}
/* 책 메타포 — CatalogView 카드와 동일한 룩.
   세부 규격은 CatalogView.vue 참고. hero 영역에서는 비율을 조금 키워서 (88~92%) 가독성을 올린다. */
.book[data-v-985cd422] {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 88%;
  aspect-ratio: 3 / 4;
  --book-thickness: 8px;
  background: var(--surface-color);
  border-radius: 1px 4px 4px 1px;
  box-shadow: var(--shadow-lg);
  transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.18s ease;
}
.book-single[data-v-985cd422] { height: 92%;
}
.book-cover[data-v-985cd422] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
  background: var(--surface-color);
}
/* 가로 썸네일은 90° 반시계 회전해서 세로 표지 안에 가득 — CatalogView 와 동일 */
.book-cover.is-landscape[data-v-985cd422] {
  inset: auto;
  top: 50%;
  left: 50%;
  width: calc(100% * 4 / 3);
  height: calc(100% * 3 / 4);
  transform: translate(-50%, -50%) rotate(-90deg);
  transform-origin: center center;
}
/* tokens-ignore-start: 책 메타포 입체감 — 의미색이 아닌 장식 아트 그라데이션/그림자 */
.book-spine[data-v-985cd422] {
  position: absolute;
  top: 0; bottom: 0;
  left: 0;
  width: 8px;
  background: linear-gradient(
    to right,
    rgba(0, 0, 0, 0.55),
    rgba(0, 0, 0, 0.25) 50%,
    rgba(0, 0, 0, 0.05) 90%,
    transparent
  );
  border-radius: 1px 0 0 1px;
  pointer-events: none;
  z-index: 2;
}
.book-pages[data-v-985cd422] {
  position: absolute;
  top: 1.5%;
  bottom: 1.5%;
  right: calc(var(--book-thickness) * -1);
  width: var(--book-thickness);
  background:
    repeating-linear-gradient(
      to right,
      var(--deco-book-page) 0,
      var(--deco-book-page) 1px,
      var(--deco-book-page-line) 1px,
      var(--deco-book-page-line) 2px
    );
  border-radius: 0 3px 3px 0;
  box-shadow:
    inset -1px 0 0 rgba(0, 0, 0, 0.25),
    inset 1px 0 0 rgba(0, 0, 0, 0.18),
    1px 2px 4px rgba(0, 0, 0, 0.25);
  pointer-events: none;
  z-index: 2;
}
/* 책꽂이 — 다중 문서 */
.book-stack[data-v-985cd422] {
  position: relative;
  width: 100%;
  height: 100%;
}
.book-stacked[data-v-985cd422] {
  top: auto;
  bottom: 8%;
  height: 84%;
  transform-origin: 50% 100%;
}
.book-stack[data-v-985cd422]::after {
  content: '';
  position: absolute;
  left: 6%;
  right: 6%;
  bottom: 6%;
  height: 2px;
  background: linear-gradient(
    to right,
    transparent 0%,
    rgba(0, 0, 0, 0.25) 20%,
    rgba(0, 0, 0, 0.25) 80%,
    transparent 100%
  );
  border-radius: 2px;
  pointer-events: none;
}
/* tokens-ignore-end */
.thumb-placeholder[data-v-985cd422] {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--space-3, 12px);
  color: var(--text-primary);
  font-weight: 600;
}
.hero-info[data-v-985cd422] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 12px);
  min-width: 0;          /* 긴 제목 줄바꿈 위해 */
  /* 컨텐츠에 맞춰 자연스럽게 늘어남. align-items:stretch 로 thumb 와 같은 높이까지 늘어나
     spacer 가 동작 → 짧은 컨텐츠에서는 가격 박스가 thumb 하단에 정렬됨. */
}
.hero-spacer[data-v-985cd422] {
  flex: 1 1 auto;        /* purchase 블록을 하단으로 밀어줌 */
  min-height: var(--space-2, 8px);
}

/* 1) 브랜드 */
.brand[data-v-985cd422] {
  display: flex;
  align-items: center;
  gap: var(--space-2, 8px);
  color: var(--text-secondary);
  font-size: 0.9rem;
}
.brand-favicon[data-v-985cd422] {
  width: 20px;
  height: 20px;
  border-radius: var(--radius-sm, 4px);
  object-fit: contain;
  background: var(--surface-color);
}
.brand-favicon--initial[data-v-985cd422] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--surface-color-secondary);
  color: var(--text-secondary);
  font-size: 0.75rem;
  font-weight: 700;
}
.brand-name[data-v-985cd422] {
  font-weight: 600;
  color: var(--text-primary);
}
/* ProductCard.vue 의 .type-badge 와 동일 스타일 (상품정보 페이지 일관성) */
.brand-type[data-v-985cd422] {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  color: var(--color-info);
  background: var(--surface-info-soft);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  line-height: 1.2;
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 2) 제목 */
.title[data-v-985cd422] {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.35;
  color: var(--text-primary);
  word-break: keep-all;
  overflow-wrap: anywhere;
}

/* 3) 개정 컨텍스트 — 좌: 판매시기, 우: 개정 뱃지들 (ProductCard 와 동일 스타일) */
.meta-row[data-v-985cd422] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3, 12px);
  align-items: center;
  color: var(--text-secondary);
  font-size: 0.9rem;
}
.meta-row__sales[data-v-985cd422] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
/* ProductCard.vue 의 .revision-order-badge / .etc-badge 와 동일 비주얼 (복사) */
.revision-order-badge[data-v-985cd422] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--color-info);
  background: var(--surface-info-soft);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}
.etc-badge[data-v-985cd422] {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  color: var(--text-secondary);
  background: var(--surface-active);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  line-height: 1.2;
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.revision-sibling-chip[data-v-985cd422] {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  padding: 2px 8px;
  border-radius: 3px;
  color: var(--text-tertiary);
  background: var(--surface-active);
  text-decoration: none;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.revision-sibling-chip[data-v-985cd422]:hover {
  color: var(--color-info);
  background: var(--surface-info-soft);
}
.revision-sibling-chip.is-current[data-v-985cd422] {
  color: var(--color-info);
  background: var(--surface-info-soft);
  cursor: default;
  pointer-events: none;
}

/* 4) 통계 strip */
.stats-row[data-v-985cd422] {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4, 16px);
  color: var(--text-primary);
  font-size: 0.9rem;
}
.stats-row li[data-v-985cd422] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.stats-row i[data-v-985cd422] {
  color: var(--text-secondary);
}
/* 가격 박스 + 좋아요/싫어요 한 줄 묶음 (purchase-row).
   좌측: reactions(왼쪽 정렬), 우측: purchase 박스(오른쪽 정렬). hero-info 폭 전체 사용. */
.purchase-row[data-v-985cd422] {
  align-self: stretch;
  display: flex;
  align-items: center;
  gap: var(--space-3, 12px);
  flex-wrap: wrap;
  justify-content: space-between;
}
.purchase-reactions[data-v-985cd422] { margin-right: auto;
}
/* 좋아요/싫어요 — 가격 박스 바깥 왼쪽 */
.purchase-reactions[data-v-985cd422] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.purchase-reactions .reaction-btn[data-v-985cd422] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 6px);
  background: transparent;
  color: var(--text-secondary);
  font: inherit;
  font-size: 0.9rem;
  cursor: pointer;
  transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}
.purchase-reactions .reaction-btn[data-v-985cd422]:hover:not(:disabled) {
  color: var(--text-primary);
  background: var(--surface-hover);
}
.purchase-reactions .reaction-btn.active[data-v-985cd422] {
  color: var(--primary-color);
  border-color: var(--primary-color);
  background: var(--surface-primary-soft);
  animation: reaction-flash-985cd422 0.45s ease-out;
}
.purchase-reactions .reaction-btn[data-v-985cd422]:disabled { opacity: 0.55; cursor: progress;
}
.purchase-reactions .reaction-btn i[data-v-985cd422] {
  color: inherit;
  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.purchase-reactions .reaction-btn[data-v-985cd422]:active:not(:disabled) { transform: scale(0.94);
}
.purchase-reactions .reaction-btn.active i[data-v-985cd422] {
  animation: reaction-pop-985cd422 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes reaction-pop-985cd422 {
0%   { transform: scale(0.7) rotate(-12deg);
}
55%  { transform: scale(1.45) rotate(8deg);
}
100% { transform: scale(1) rotate(0);
}
}
@keyframes reaction-flash-985cd422 {
0%   { box-shadow: 0 0 0 0 rgba(var(--primary-rgb), 0.45);
}
100% { box-shadow: 0 0 0 10px transparent;
}
}

/* 5) 신뢰 */
.trust-row[data-v-985cd422] {
  color: var(--text-secondary);
  font-size: 0.85rem;
}

/* 6) 가격 + CTA — 한 줄 유지. 폭이 부족하면 라인 wrap 대신
   미디어 쿼리로 hero 자체를 1열로 떨어뜨린다(아래 반응형).
   align-self: flex-end 는 purchase-row 로 옮겼음 (purchase-row 가 hero-info 의 flex 자식). */
.purchase[data-v-985cd422] {
  max-width: 100%;
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--space-4, 16px);
  white-space: nowrap;
}
.purchase-price[data-v-985cd422] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.1;
}
.purchase-price__value[data-v-985cd422] {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--primary-color);
}
.purchase-price__value--strike[data-v-985cd422] {
  text-decoration: line-through;
  text-decoration-color: currentColor;
  text-decoration-thickness: 2px;
  opacity: 0.7;
}
.purchase-price__reason[data-v-985cd422] {
  font-size: 0.78rem;
  color: var(--text-secondary);
}
.purchase-size[data-v-985cd422] {
  margin-left: 4px;
  opacity: 0.8;
  font-size: 0.85em;
  font-weight: 400;
}
.hint.warn[data-v-985cd422] {
  margin: 0;
  color: var(--color-warning);
  font-size: 0.85rem;
}

/* ──────────────────────────────────────────────────────────────────
   하단 docs — flex-wrap 카드 그리드. 카드 폭 200px 고정.
   ────────────────────────────────────────────────────────────────── */
.section-title[data-v-985cd422] {
  font-size: 1.1rem;
  margin: 0 0 var(--space-4, 16px);
  color: var(--text-primary);
}
.section-title--toggle[data-v-985cd422] {
  display: flex;
  align-items: center;
  gap: var(--space-2, 8px);
  cursor: pointer;
  user-select: none;
}
.section-title--toggle[data-v-985cd422]:hover {
  color: var(--primary-color);
}
.section-title--toggle[data-v-985cd422]:focus-visible {
  outline: 2px solid var(--primary-color);
  outline-offset: 2px;
  border-radius: var(--radius-sm, 4px);
}
.toggle-chevron[data-v-985cd422] {
  font-size: 0.85em;
  color: var(--text-secondary);
  width: 1em;
  transition: transform 0.15s ease;
}
/* .catalog-subtable 의 높이는 ListBody 의 max-height prop 으로 제어 (데이터 양에 맞춤) */

/* 구성 문서 — DataTable 셀 스타일.
   미니북 표시를 위해 살짝 키우고 page-edges 가 보이도록 overflow: visible. */
.cell-thumb[data-v-985cd422] {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 50px;
  cursor: pointer;
  transition: transform 0.15s ease;
}
.cell-thumb:hover .book[data-v-985cd422] {
  filter: brightness(1.06);
  transform: translate(-50%, -52%);
}
/* 작은 책 — 미니 사이즈에 맞춘 spine/page-edge */
.book-mini[data-v-985cd422] {
  height: 92%;
  border-radius: 1px 2px 2px 1px;
  box-shadow: var(--shadow-md);
}
.book-mini .book-spine[data-v-985cd422] { width: 4px;
}
.book-mini .book-pages[data-v-985cd422] { border-radius: 0 2px 2px 0;
}
.doc-link[data-v-985cd422],
.doc-type-link[data-v-985cd422] {
  color: var(--text-primary);
  text-decoration: none;
  cursor: pointer;
}
.doc-link[data-v-985cd422]:hover,
.doc-type-link[data-v-985cd422]:hover {
  color: var(--primary-color);
  text-decoration: underline;
}
.doc-price-cell[data-v-985cd422] {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  line-height: 1.2;
}
.doc-price-cell .value[data-v-985cd422] {
  font-weight: 700;
  color: var(--text-primary);
}
.doc-price-cell .reason[data-v-985cd422] {
  color: var(--text-secondary);
  font-size: 0.78rem;
  white-space: nowrap;       /* "(962p + 658p[2단]) × 10원" 같은 산식은 한 줄 유지 */
}
.muted[data-v-985cd422] {
  color: var(--text-secondary);
}
.reviewer-when[data-v-985cd422] {
  color: var(--text-secondary);
  font-size: 0.85em;
  margin-left: 4px;
}

/* ──────────────────────────────────────────────────────────────────
   다른 개정
   ────────────────────────────────────────────────────────────────── */
.sibling-title[data-v-985cd422] {
  color: var(--text-primary);
  text-decoration: none;
}
.sibling-title[data-v-985cd422]:hover {
  color: var(--primary-color);
}
/* 다른 버전 테이블도 docs 와 동일 셀 padding */
.siblings[data-v-985cd422] .data-table td {
  padding: 6px 12px;
}
.siblings[data-v-985cd422] .data-table th {
  padding: 8px 12px;
}
.sibling-revision-badge[data-v-985cd422] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--color-info);
  background: var(--surface-info-soft);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* ──────────────────────────────────────────────────────────────────
   반응형 — purchase 가 한 줄에 들어가지 못할 폭(~470px) 이하가 되면
   hero 를 통째로 1열로 떨어뜨려 thumb 아래에 info 가 오게 한다.
   thumb 320 + gap 24 + content padding 48 + purchase 최소 ~470 = ~860px → 900px 기준.
   ────────────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
.content[data-v-985cd422] {
    padding: var(--space-4, 16px);
}
.hero[data-v-985cd422] {
    grid-template-columns: 1fr;
}
.hero-thumb[data-v-985cd422] {
    max-width: 320px;
    /* iOS Safari 호환: min-height 만 두면 자식 .book 의 height 백분율(88%/84%)이
       해석되지 않아 책이 0×0 으로 collapse 되고, 다운로드된 썸네일 이미지가
       자리를 못 잡아 화면에 안 보임. 명시적 height 로 확정. */
    height: 240px;
    margin: 0 auto;
}
  /* 1열 전환 시 info 영역도 thumb 와 시각 축을 맞춰 가운데 정렬 */
.hero-info[data-v-985cd422] {
    align-items: center;
    text-align: center;
}
.brand[data-v-985cd422],
  .meta-row[data-v-985cd422],
  .stats-row[data-v-985cd422] {
    justify-content: center;
}
.title[data-v-985cd422] {
    font-size: 1.25rem;
}
.purchase-row[data-v-985cd422] {
    align-self: center;
    justify-content: center;
}
  /* 컬럼은 우선 자연스럽게 압축. 더 줄일 수 없는 한계(컬럼 합 ~560px) 이하로
     컨테이너가 좁아지면 DataTable 내부 .table-scroll-area 가 가로 스크롤 표시.
     thumb 60 + 종류 100 + 페이지 70 + 항목 70 + 검수자 120 + 가격 140 ≈ 560 */
.docs[data-v-985cd422] .data-table {
    min-width: 560px;
}
}

/* 모바일 폭: 1행=가격, 2행=두 버튼 나란히 — flex-basis 로 가격을 한 줄 차지하게 함 */
@media (max-width: 520px) {
.purchase[data-v-985cd422] {
    width: 100%;
    align-self: stretch;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-3, 12px);
}
.purchase-price[data-v-985cd422] {
    flex: 0 0 100%;           /* 1행 단독 — 다음 요소(버튼)가 강제로 2행으로 떨어짐 */
    align-items: center;
    text-align: center;
}
  /* 좁은 폭 — 짧은 라벨로 전환 (보기 / 다운로드 / 이용).
     full 라벨 + 다운로드 용량(1.6MB) 은 숨기고 short 라벨만 노출.
     padding 도 줄여 컴팩트하게. */
.purchase[data-v-985cd422] .app-btn {
    flex: 0 0 auto;
    padding: 0 var(--space-3, 12px);
    min-width: 0;
}
.btn-label-full[data-v-985cd422],
  .purchase-size[data-v-985cd422] {
    display: none;
}
.btn-label-short[data-v-985cd422] {
    display: inline;
}
.purchase-reactions[data-v-985cd422] {
    flex: 0 0 100%;
    justify-content: center;
    margin-right: 0;
}
}

/* 데스크톱 기본: full 라벨만 노출 */
.btn-label-short[data-v-985cd422] {
  display: none;
}

/* TodoWorkTypeMeta 의 .vertical-split-resizer 와 동일 스타일 — 일관성 보장 */
.vertical-split-resizer[data-v-1500b908] {
  flex-shrink: 0;
  flex: 0 0 8px;
  width: 8px;
  /* 다크모드에서 PDF 뷰어/페이지 배경과 구분되도록 muted 톤 사용
     - dark: #1a1a1a (페이지 #000 과 PDF 영역 #2a2a2a 사이의 중간톤)
     - light: #eff3fb (밝은 회색) */
  background: var(--surface-muted);
  cursor: col-resize;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s, opacity 0.2s, width 0.2s;
  /* 분리대 z-index — tokens.css 의 --z-splitter (sticky+1, fixed 미만) 사용.
     반드시 --z-resize-overlay 보다 높아야 < = > 버튼이 클릭됨 (회귀 사례 주석 참고). */
  z-index: var(--z-splitter);
  overflow: visible;
  user-select: none;
}
.vertical-split-resizer.compact[data-v-1500b908] {
  opacity: 1;
  cursor: pointer;
  flex: 0 0 32px;
  width: 32px;
  /* 배경은 기본(border-color) 유지 — 일관된 분리대 색 */
  border-left: 1px solid var(--border-color);
  border-right: 1px solid var(--border-color);
}
.vertical-split-resizer[data-v-1500b908]:hover:not(.compact),
.vertical-split-resizer.resizing[data-v-1500b908] {
  background: var(--primary-color);
}
.vertical-split-resizer.compact[data-v-1500b908]:hover {
  background: var(--surface-hover);
  border-left-color: var(--primary-color);
  border-right-color: var(--primary-color);
}
.vertical-split-resizer-handle[data-v-1500b908] {
  width: 3px;
  height: 40px;
  background: var(--text-secondary);
  border-radius: 2px;
  opacity: 0.6;
  transition: opacity 0.2s;
  pointer-events: none;
}
/* compact 모드 세로 라벨 — 접힌 패널 이름 표시 */
.vertical-split-resizer-label[data-v-1500b908] {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  writing-mode: vertical-rl;
  text-orientation: mixed;
  color: var(--text-primary);
  font-size: 0.875rem;
  font-weight: 500;
  white-space: nowrap;
  pointer-events: none;
  letter-spacing: 0.15em;
  z-index: 5;
  margin-top: 1.5rem; /* 상단의 버튼 영역 피하기 */
}
.vertical-split-resizer:hover .vertical-split-resizer-handle[data-v-1500b908],
.vertical-split-resizer.resizing .vertical-split-resizer-handle[data-v-1500b908] {
  opacity: 1;
}
.vertical-split-resizer-controls[data-v-1500b908] {
  position: absolute;
  top: 0.5rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  /* 부모(.vertical-split-resizer) 가 이미 z-fixed 라 부모 stacking context 안에서만 정렬 */
  z-index: 1;
  pointer-events: auto;
  overflow: visible;
}
.resizer-toggle-btn[data-v-1500b908] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  padding: 0;
  margin: 0;
  border: 1px solid var(--border-color);
  border-radius: 3px;
  background: var(--surface-color);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.15s;
  font-size: 0.55rem;
  line-height: 1;
  box-sizing: border-box;
}
.resizer-toggle-btn[data-v-1500b908]:hover {
  background: var(--primary-color);
  color: var(--color-white);
  border-color: var(--primary-color);
}
.resizer-toggle-btn i[data-v-1500b908] {
  font-size: 0.5rem;
  line-height: 1;
}
/* 가로 minus 아이콘을 세로 막대(|) 로 표시 — '복원' 버튼용 */
.resizer-icon-vertical[data-v-1500b908] {
  transform: rotate(90deg);
}

.app-textarea[data-v-a92a388b] {
  box-sizing: border-box;
  width: 100%;
  padding: var(--space-2) var(--control-padding-x-md);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--surface-color);
  color: var(--text-primary);
  font-family: inherit;
  font-size: var(--font-md);
  line-height: var(--line-normal);
  resize: vertical;
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}
.app-textarea[data-v-a92a388b]::placeholder {
  color: var(--text-tertiary);
}
.app-textarea[data-v-a92a388b]:focus-visible {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.app-textarea[data-v-a92a388b]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  background: var(--surface-muted);
}
.app-textarea[readonly][data-v-a92a388b] {
  background: var(--surface-muted);
}
.app-textarea--invalid[data-v-a92a388b] {
  border-color: var(--color-danger);
}
.app-textarea--invalid[data-v-a92a388b]:focus-visible {
  box-shadow: var(--ring-danger);
}

.modal-overlay[data-v-dc431f57] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
}
.modal[data-v-dc431f57] {
  background: var(--surface-color);
  border-radius: 12px;
  width: 500px;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-modal);
}
.modal--wide[data-v-dc431f57] {
  width: 600px;
}
.modal-header[data-v-dc431f57] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--border-color);
}
.modal-header h4[data-v-dc431f57] {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--text-primary);
}
.modal-body[data-v-dc431f57] {
  padding: 1.25rem 1.5rem;
  overflow-y: auto;
}
.modal-footer[data-v-dc431f57] {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--border-color);
}
.form-group[data-v-dc431f57] {
  margin-bottom: 0.75rem;
}
.form-group label[data-v-dc431f57] {
  display: block;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: 0.25rem;
}
.form-group--checkbox[data-v-dc431f57] {
  display: flex;
  align-items: center;
  padding-top: 1.5rem;
}
.form-group--checkbox label[data-v-dc431f57] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}
.form-row[data-v-dc431f57] {
  display: flex;
  gap: 1rem;
}
.form-row .form-group[data-v-dc431f57] {
  flex: 1;
}
.form-error[data-v-dc431f57] {
  color: var(--danger-color, var(--color-danger-hover));
  font-size: 0.8125rem;
  margin-bottom: 0.75rem;
  padding: 0.5rem 0.75rem;
  background: var(--surface-danger-soft);
  border-radius: 6px;
}
.form-hint[data-v-dc431f57] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  margin-top: 0.25rem;
  display: block;
}
.form-hint--error[data-v-dc431f57] {
  color: var(--danger-color, var(--color-danger-hover));
}
.doc-type-checkboxes[data-v-dc431f57] {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding: 0.375rem 0;
}
.doc-type-check[data-v-dc431f57] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.8125rem;
  color: var(--text-primary);
  cursor: pointer;
}
.scope-search-wrap[data-v-dc431f57] {
  position: relative;
}
.scope-dropdown[data-v-dc431f57] {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 10;
  background: var(--surface-color, white);
  border: 1px solid var(--border-color);
  border-radius: 6px;
  box-shadow: var(--shadow-md);
  max-height: 200px;
  overflow-y: auto;
  margin-top: 2px;
}
.scope-dropdown__item[data-v-dc431f57] {
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.scope-dropdown__item[data-v-dc431f57]:hover {
  background: var(--surface-muted);
}
.scope-dropdown__id[data-v-dc431f57] {
  color: var(--text-tertiary);
  font-size: 0.75rem;
  min-width: 40px;
}


.list-bulk-bar[data-v-2a62112e] {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  background: var(--surface-color);
  border: 1px solid var(--primary-color);
  border-radius: var(--radius-md);
}

/* 선택 컨트롤 묶음 */
.list-bulk-bar__select[data-v-2a62112e] {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-shrink: 0;
}
.list-bulk-bar__all[data-v-2a62112e],
.list-bulk-bar__allresults[data-v-2a62112e] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-sm);
  color: var(--text-secondary);
  cursor: pointer;
  white-space: nowrap;
}
.list-bulk-bar__count[data-v-2a62112e] {
  font-size: var(--font-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--primary-color);
  white-space: nowrap;
}
.list-bulk-bar__allresults[data-v-2a62112e] { color: var(--primary-color);
}

/* 액션 버튼 — 넓은 화면에선 우측 정렬 */
.list-bulk-bar__actions[data-v-2a62112e] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  flex: 1;
  justify-content: flex-end;
}

/* 좁은 화면: 선택 컨트롤 윗줄 / 액션 버튼 아랫줄 */
@media (max-width: 768px) {
.list-bulk-bar[data-v-2a62112e] {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-2);
}
.list-bulk-bar__actions[data-v-2a62112e] {
    justify-content: flex-start;
}
}

.content-node[data-v-939d2e40] {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0.375rem;
  /* 우측에 부산물(태그/페이지) 자리 reserve. R/원복 버튼 제거 만큼 축소(8rem → 5.5rem) */
  padding: 0.25rem 5.5rem 0.25rem 0.375rem;
  border-radius: 4px;
  font-size: 0.8125rem;
  line-height: 1.5;
  transition: background-color 0.15s, border-color 0.15s;
  user-select: none;
  touch-action: manipulation;
  -webkit-touch-callout: none;
  border-left: 3px solid transparent;
  position: relative;
}

/* 테이블 왼쪽 테두리 클릭 → 전체 셀 선택 */
/* left: -4px 로 border(-3px) 영역을 포함, width: 10px 으로 충분한 클릭 영역 확보 */
.content-node__left-border-btn[data-v-939d2e40] {
  position: absolute;
  left: -4px;
  top: 0;
  bottom: 0;
  width: 10px;
  cursor: pointer;
  z-index: 10;
}

/* 트리 세로 가이드라인 */
.content-node__guide-line[data-v-939d2e40] {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--border-color);
  pointer-events: none;
  z-index: 0;
  opacity: 0.5;
}

/* 마지막 자식: 세로선을 아이콘 높이에서 자름 (└── 형태) */
.content-node__guide-line--clipped[data-v-939d2e40] {
  bottom: auto;
  height: 13px;
}

/* 부모 토글(V)에서 자식으로 내려가는 세로선 */
.content-node__stem[data-v-939d2e40] {
  position: absolute;
  top: 14px;
  bottom: 0;
  width: 1px;
  background: var(--border-color);
  pointer-events: none;
  z-index: 0;
  opacity: 0.5;
}

/* 트리 커넥터: 수평선 (아이콘 높이에 고정) */
.content-node__connector[data-v-939d2e40] {
  position: absolute;
  top: 0;
  height: 13px;
  pointer-events: none;
  z-index: 0;
}
.content-node__connector[data-v-939d2e40]::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: var(--border-color);
  opacity: 0.5;
}
.content-node--clickable[data-v-939d2e40] {
  cursor: pointer;
}

/* 호버: 선택/포커스가 아닌 행에만 적용 */
.content-node--clickable[data-v-939d2e40]:hover:not(.content-node--selected):not(.content-node--focused) {
  background: var(--surface-hover);
  border-left-color: var(--border-color);
}

/* 포커스 (키보드 탐색) */
.content-node--focused[data-v-939d2e40] {
  background: var(--surface-info-soft);
  border-left-color: var(--primary-color);
}

/* 선택 */
.content-node--selected[data-v-939d2e40] {
  background: var(--surface-primary-soft);
  border-left-color: var(--primary-color);
}

/* 선택 + 호버: 약간 더 진하게 */
.content-node--selected[data-v-939d2e40]:hover {
  background: var(--surface-active);
}
.content-node--new[data-v-939d2e40] {
  animation: extract-slide-in-939d2e40 0.3s ease-out,extract-pulse-939d2e40 1s ease-in-out;
}
.content-node--heading[data-v-939d2e40] {
  margin-top: 0.25rem;
}

/* 접기/펼치기 버튼 */
/* .content-node__toggle → AppButton icon-only variant="ghost" size="xs" */
.content-node__toggle[data-v-939d2e40] {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 1px;
}
.content-node__toggle-spacer[data-v-939d2e40] {
  flex-shrink: 0;
  width: 18px;
}

/* 선택 모드 체크박스 */
.content-node__checkbox[data-v-939d2e40] {
  flex-shrink: 0;
  width: 16px;
  text-align: center;
  font-size: 0.875rem;
  margin-top: 1px;
  color: var(--text-tertiary);
}
.content-node--selected .content-node__checkbox[data-v-939d2e40] {
  color: var(--primary-color);
}

/* 타입 아이콘 */
.content-node__type-icon[data-v-939d2e40] {
  flex-shrink: 0;
  width: 16px;
  text-align: center;
  color: var(--text-tertiary);
  font-size: 0.6875rem;
  margin-top: 2px;
}
.content-node__type-icon--clickable[data-v-939d2e40] {
  cursor: pointer;
}
.content-node__type-icon--clickable[data-v-939d2e40]:hover {
  color: var(--primary-color);
}

/* outline 번호 */
.content-node__outline[data-v-939d2e40] {
  flex-shrink: 0;
  color: var(--primary-color);
  font-weight: 600;
  font-size: 0.75rem;
  margin-top: 1px;
}

/* 텍스트 본문 */
.content-node__text[data-v-939d2e40] {
  flex: 1;
  min-width: 0;
  padding-right: 0.5rem;       /* 우측 부산물과 최소 간격 (특히 정렬 모드에서) */
  color: var(--text-primary);
  word-break: break-word;
  white-space: pre-line;
}
.content-node__text--heading[data-v-939d2e40] {
  font-weight: 600;
  font-size: 0.875rem;
}

/* 가로 정렬 — flex 영역 안에서 block 으로 펼친 뒤 text-align 적용 */
.content-node__text--align-center[data-v-939d2e40],
.content-node__text--align-right[data-v-939d2e40] {
  display: block;
}
.content-node__text--align-center[data-v-939d2e40] { text-align: center;
}
.content-node__text--align-right[data-v-939d2e40] { text-align: right;
}

/* 우측 부속물 wrapper — page 영역 좌측에 absolute 고정 (page 자릿수 변화 영향 차단) */
.content-node__right-tools[data-v-939d2e40] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.25rem;
  position: absolute;
  right: 2.75rem;              /* page 영역(2.5rem) + offset(0.25rem) */
  top: 0.25rem;
  bottom: 0.25rem;
  pointer-events: none;
}
.content-node__right-tools[data-v-939d2e40] > * {
  pointer-events: auto;
  align-self: center;          /* 세로 중앙 통일 */
  margin-left: 0;              /* gap 으로 통일 (자식별 margin-left 무효화) */
}
/* 우측 영역 안에서는 chip 폭 cap (long label 도 영역 침범 안 하도록) */
.content-node__right-tools .content-node__tag-chip[data-v-939d2e40] {
  max-width: 4rem;
}
/* 추가 태그 표시 +N */
.content-node__tag-chip-more[data-v-939d2e40] {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.125rem;
  height: 1rem;
  padding: 0 0.25rem;
  border-radius: 999px;
  font-size: 0.625rem;
  font-weight: 600;
  background: var(--surface-active);
  color: var(--text-secondary);
  cursor: pointer;
  user-select: none;
}
.content-node__tag-chip-more[data-v-939d2e40]:hover {
  background: var(--surface-active);
  color: var(--text-primary);
}

/* 페이지 표시 — row 우측 끝에 absolute 고정. tabular-nums 로 자릿수 차이 영향 최소화 */
.content-node__page[data-v-939d2e40] {
  position: absolute;
  right: 0.375rem;
  top: 50%;
  transform: translateY(-50%);
  width: 2.5rem;
  text-align: right;
  color: var(--text-tertiary);
  font-size: 0.6875rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  pointer-events: none;
}

/* 콘텐츠 태그 칩 */
.content-node__tag-chip[data-v-939d2e40] {
  flex-shrink: 0;
  align-self: center;
  display: inline-flex;
  align-items: center;
  gap: 0.125rem;
  font-size: 0.6875rem;
  padding: 0.0625rem 0.375rem;
  margin-left: 0.25rem;
  border-radius: 999px;
  background: var(--surface-muted);
  color: var(--text-primary);
  font-weight: 500;
  white-space: nowrap;
  max-width: 8rem;
  border: 1px solid var(--border-subtle);
  cursor: pointer;
  transition: filter 0.15s, box-shadow 0.15s;
}
.content-node__tag-chip[data-v-939d2e40]:hover {
  filter: brightness(1.05);
  box-shadow: var(--ring-focus);
}
.content-node__tag-chip-label[data-v-939d2e40] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 6rem;
}
.content-node__tag-chip-remove[data-v-939d2e40] {
  display: none;
  background: transparent;
  border: none;
  color: inherit;
  font-size: 0.875rem;
  line-height: 1;
  padding: 0 0.0625rem;
  cursor: pointer;
  opacity: 0.7;
}
.content-node__tag-chip-remove[data-v-939d2e40]:hover {
  opacity: 1;
}

/* 칩에 마우스가 올라간 경우에만 X 버튼 노출 (행 전체 hover 아님) */
.content-node__tag-chip:hover .content-node__tag-chip-remove[data-v-939d2e40] {
  display: inline-flex;
}

/* 모바일: 항상 표시 */
@media (hover: none) {
.content-node__tag-chip-remove[data-v-939d2e40] {
    display: inline-flex;
}
}

/* 태그 추가 버튼 */
.content-node__tag-add-btn[data-v-939d2e40] {
  flex-shrink: 0;
  align-self: center;
  display: none;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  margin-left: 0.25rem;
  padding: 0;
  border-radius: 50%;
  border: 1px dashed var(--border-color);
  background: transparent;
  color: var(--text-tertiary);
  font-size: 0.625rem;
  cursor: pointer;
  transition: all 0.15s;
}
.content-node__tag-add-btn[data-v-939d2e40]:hover {
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  border-color: var(--text-secondary);
  border-style: solid;
}
.content-node:hover .content-node__tag-add-btn[data-v-939d2e40],
.content-node--selected .content-node__tag-add-btn[data-v-939d2e40],
.content-node--focused .content-node__tag-add-btn[data-v-939d2e40] {
  display: inline-flex;
}
@media (hover: none) {
.content-node__tag-add-btn[data-v-939d2e40] {
    display: inline-flex;
}
}
.content-node__removed-info[data-v-939d2e40] {
  flex-shrink: 0;
  align-self: center;
  color: var(--text-tertiary);
  font-size: 0.625rem;
  margin-left: 0.375rem;
  padding-left: 0.375rem;
  white-space: nowrap;
  opacity: 0.7;
  border-left: 1px solid var(--border-color);
}

/* 테이블 */
.content-node__table-wrap[data-v-939d2e40] {
  flex: 1;
  min-width: 0;
  overflow-x: auto;
  overflow-y: visible;
  position: relative;
}

/* 테이블 행/열 삽입 인디케이터 */
.table-insert-indicator[data-v-939d2e40] {
  z-index: 5;
  pointer-events: none;
}
.table-insert-indicator--row[data-v-939d2e40] {
  position: absolute;
  left: 0;
  right: 0;
  height: 0;
  transform: translateY(-50%);
}
.table-insert-indicator--col[data-v-939d2e40] {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 0;
  transform: translateX(-50%);
}
.table-insert-indicator--row .table-insert-indicator__line[data-v-939d2e40] {
  position: absolute;
  left: 0;
  right: 0;
  height: 1.5px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--primary-color);
  opacity: 0.5;
}
.table-insert-indicator--col .table-insert-indicator__line[data-v-939d2e40] {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1.5px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--primary-color);
  opacity: 0.5;
}
.table-insert-indicator__btn[data-v-939d2e40] {
  pointer-events: auto;
  position: absolute;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: none;
  background: var(--primary-color);
  color: var(--color-white);
  font-size: 0.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.5;
  transition: opacity 0.15s, transform 0.1s;
}
.table-insert-indicator--row .table-insert-indicator__btn[data-v-939d2e40] {
  top: 50%;
  transform: translate(-50%, -50%);
}
.table-insert-indicator--col .table-insert-indicator__btn[data-v-939d2e40] {
  left: 50%;
  transform: translate(-50%, -50%);
}
.table-insert-indicator__btn[data-v-939d2e40]:hover {
  opacity: 1;
}
.table-insert-indicator--row .table-insert-indicator__btn[data-v-939d2e40]:hover {
  transform: translate(-50%, -50%) scale(1.2);
}
.table-insert-indicator--col .table-insert-indicator__btn[data-v-939d2e40]:hover {
  transform: translate(-50%, -50%) scale(1.2);
}
.content-node__table[data-v-939d2e40] {
  border-collapse: collapse;
  border: 1px solid var(--border-color);
  font-size: 0.75rem;
  width: 100%;
  table-layout: fixed;
}
.content-node__table-cell[data-v-939d2e40] {
  border: 1px solid var(--border-color);
  padding: 0.375rem 0.5rem;
  min-height: 2rem;
  color: var(--text-primary);
  word-break: break-word;
  -webkit-touch-callout: none;
  touch-action: manipulation;
  white-space: pre-line;
  cursor: pointer;
  outline: none;
  position: relative;
  user-select: none;
  -webkit-user-select: none;
}
.content-node__table-cell[data-v-939d2e40]:hover {
  background: var(--surface-primary-soft);
}
.content-node__table-cell--selected[data-v-939d2e40] {
  background: var(--surface-success-soft);
  outline: 2px solid var(--color-success);
  outline-offset: -2px;
  z-index: 1;
}
.content-node__table-cell--range-selected[data-v-939d2e40] {
  background: var(--surface-primary-soft);
  outline: 1.5px solid var(--color-info);
  outline-offset: -1px;
}
.content-node__table-cell--editing[data-v-939d2e40] {
  padding: 0;
  z-index: 1;
  background: var(--surface-color);
  border-color: var(--primary-color);
}
.content-node__cell-rollback-btn[data-v-939d2e40] {
  position: absolute;
  top: 2px;
  right: 2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: var(--primary-color);
  cursor: pointer;
  font-size: 0.625rem;
  padding: 2px 4px;
  opacity: 0.35;
  transition: opacity 0.15s;
}
.content-node__cell-rollback-btn[data-v-939d2e40]:hover {
  opacity: 1;
}

/* 중첩 테이블 */
.content-node__nested-label[data-v-939d2e40] {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.6875rem;
  color: var(--text-secondary);
}
.content-node__nested-table[data-v-939d2e40] {
  border-collapse: collapse;
  width: 100%;
  font-size: 0.6875rem;
}
.content-node__nested-cell[data-v-939d2e40] {
  border: 1px solid var(--border-color);
  padding: 0.125rem 0.375rem;
  word-break: break-word;
  cursor: pointer;
}
.content-node__nested-cell[data-v-939d2e40]:hover {
  background: var(--surface-primary-soft);
}
.content-node__nested-cell--selected[data-v-939d2e40] {
  background: var(--surface-success-soft);
  outline: 2px solid var(--color-success);
  outline-offset: -2px;
  position: relative;
  z-index: 1;
}

/* DB-backed 중첩 테이블 (편집 가능) */
.content-node__nested-table--editable[data-v-939d2e40] {
  width: auto;
  margin-top: 0.125rem;
}
.content-node__nested-label--below[data-v-939d2e40] {
  margin-top: 0.25rem;
  margin-bottom: 0;
}
.content-node__cell-edit-below[data-v-939d2e40] {
  display: block;
  margin-top: 0.25rem;
  min-height: 1.25rem;
}
.content-node__nested-add-below[data-v-939d2e40] {
  display: block;
  min-height: 0.5rem;
  cursor: text;
}
.content-node__nested-db-cell[data-v-939d2e40] {
  font-size: 0.6875rem;
}

/* 수식 */
.content-node__formula[data-v-939d2e40] {
  flex: 1;
  font-family: 'Courier New', monospace;
  font-size: 0.8125rem;
  background: var(--surface-color-secondary);
  padding: 0.125rem 0.375rem;
  border-radius: 3px;
  color: var(--text-primary);
}

/* 이미지 플레이스홀더 */
.content-node__image-placeholder[data-v-939d2e40] {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 0.375rem;
  color: var(--text-secondary);
  font-style: italic;
}
.content-node__image-placeholder i[data-v-939d2e40] {
  color: var(--text-tertiary);
}

/* 검색 키워드 인라인 하이라이트 */
.content-node__highlight[data-v-939d2e40] {
  background: var(--surface-warning-soft);
  color: inherit;
  border-radius: 2px;
  padding: 0 1px;
}

/* 검색 매칭 노드 배경 */
.content-node--search-match[data-v-939d2e40] {
  background: var(--surface-warning-soft);
}
.content-node--search-match[data-v-939d2e40]:hover {
  background: var(--surface-warning-soft);
  filter: brightness(1.15);
}
.content-node--search-match.content-node--selected[data-v-939d2e40],
.content-node--search-match.content-node--focused[data-v-939d2e40] {
  background: var(--surface-warning-soft);
}

/* 현재 검색 매칭 노드 (이전/다음으로 이동 중인 항목) — 주황색 강조 */
.content-node--search-current[data-v-939d2e40] {
  background: var(--surface-orange-soft);
  border-left-color: var(--color-orange);
}
.content-node--search-current[data-v-939d2e40]:hover {
  background: var(--surface-orange-soft);
  filter: brightness(1.15);
}
.content-node--search-current.content-node--selected[data-v-939d2e40],
.content-node--search-current.content-node--focused[data-v-939d2e40] {
  background: var(--surface-orange-soft);
  border-left-color: var(--color-orange);
}

/* 인라인 편집 */
.content-node--editing[data-v-939d2e40] {
  background: var(--surface-info-soft);
  border-left-color: var(--primary-color);
}
.content-node__text--editing[data-v-939d2e40] {
  outline: none;
  cursor: text;
  user-select: text;
  min-height: 1.2em;
  border-bottom: 1px solid var(--primary-color);
  white-space: pre-wrap;
  word-break: break-word;
}
.content-node__cell-edit-input[data-v-939d2e40] {
  display: block;
  width: 100%;
  min-height: 2rem;
  box-sizing: border-box;
  padding: 0.375rem 0.5rem;
  border: none;
  background: transparent;
  color: var(--text-primary);
  font-size: 0.75rem;
  line-height: 1.5;
  outline: none;
  font-family: inherit;
  cursor: text;
  user-select: text;
  white-space: pre-wrap;
  word-break: break-word;
}

/* 잠금 표시 */
.content-node--locked[data-v-939d2e40] {
  opacity: 0.7;
}
.content-node__lock-badge[data-v-939d2e40] {
  flex-shrink: 0;
  color: var(--color-warning);
  font-size: 0.625rem;
  margin-left: 0.25rem;
  cursor: help;
}

/* 원격 사용자 아바타 */
.content-node__remote-avatar[data-v-939d2e40] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.5rem;
  font-weight: 700;
  color: var(--color-white);
  margin-left: 0.25rem;
  cursor: default;
  overflow: hidden;
}
.content-node__remote-avatar-img[data-v-939d2e40] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

/* 변경 하이라이트 애니메이션 */
.content-node--highlight-add[data-v-939d2e40] {
  animation: highlight-fade-939d2e40 2s ease-out;
  --highlight-color: var(--surface-success-soft);
}
.content-node--highlight-edit[data-v-939d2e40] {
  animation: highlight-fade-939d2e40 2s ease-out;
  --highlight-color: var(--surface-info-soft);
}
.content-node--highlight-delete[data-v-939d2e40] {
  animation: highlight-fade-939d2e40 2s ease-out;
  --highlight-color: var(--surface-danger-soft);
}
.content-node--highlight-move[data-v-939d2e40] {
  animation: highlight-fade-939d2e40 2s ease-out;
  --highlight-color: var(--surface-orange-soft);
}
@keyframes highlight-fade-939d2e40 {
0%   { background-color: var(--highlight-color);
}
70%  { background-color: var(--highlight-color);
}
100% { background-color: transparent;
}
}

/* 애니메이션 */
@keyframes extract-slide-in-939d2e40 {
from { opacity: 0; transform: translateY(8px);
}
to   { opacity: 1; transform: translateY(0);
}
}
@keyframes extract-pulse-939d2e40 {
0%   { background-color: transparent;
}
50%  { background-color: var(--primary-color-alpha-10, var(--surface-primary-soft));
}
100% { background-color: transparent;
}
}

.tag-create-modal-backdrop[data-v-21239cfa] {
  position: fixed;
  inset: 0;
  z-index: 1600;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--backdrop-bg);
}
.tag-create-modal[data-v-21239cfa] {
  width: min(420px, calc(100vw - 2rem));
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
}
.tag-create-modal-header[data-v-21239cfa] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-color);
}
.tag-create-modal-header h3[data-v-21239cfa] {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
}
.tag-create-modal-body[data-v-21239cfa] {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}
.tag-create-field[data-v-21239cfa] {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.tag-create-field label[data-v-21239cfa] {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-secondary);
}
.tag-create-field input[type="color"][data-v-21239cfa] {
  border: 1px solid var(--border-color);
  border-radius: 4px;
  padding: 0.375rem 0.5rem;
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.8125rem;
  outline: none;
}
.tag-create-field small[data-v-21239cfa] {
  font-size: 0.6875rem;
  color: var(--text-tertiary);
}
.tag-create-color-row[data-v-21239cfa] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.tag-create-color-picker[data-v-21239cfa] {
  width: 2.5rem !important;
  height: 2rem !important;
  padding: 0.125rem !important;
  cursor: pointer;
}
.tag-create-color-hex[data-v-21239cfa] {
  flex: 1;
  font-family: ui-monospace, monospace;
}
.tag-create-preview[data-v-21239cfa] {
  flex-shrink: 0;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 500;
  border: 1px solid var(--border-subtle);
}
.tag-create-scope-radio[data-v-21239cfa] {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.tag-create-scope-radio label[data-v-21239cfa] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}
.tag-create-scope-value[data-v-21239cfa] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  margin-left: 0.25rem;
  font-style: italic;
}
.tag-create-error[data-v-21239cfa] {
  padding: 0.5rem 0.75rem;
  background: var(--surface-danger-soft);
  border: 1px solid var(--color-danger);
  border-radius: 4px;
  color: var(--color-danger-hover);
  font-size: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.375rem;
}
.tag-create-modal-footer[data-v-21239cfa] {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 0.5rem;
}


.tag-picker-overlay[data-v-4200ee36] {
  position: fixed;
  z-index: 1500;
  display: flex;
  flex-direction: column;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  font-size: 0.8125rem;
  color: var(--text-primary);
}
.tag-picker-header[data-v-4200ee36] {
  flex-shrink: 0;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--border-color);
}
.tag-picker-title[data-v-4200ee36] {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.375rem;
}
.tag-picker-target[data-v-4200ee36] {
  color: var(--text-tertiary);
  font-weight: normal;
  font-size: 0.75rem;
}
.tag-picker-search[data-v-4200ee36] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--border-color);
  color: var(--text-tertiary);
}
.tag-picker-search-input[data-v-4200ee36] {
  flex: 1;
  /* AppInput fallthrough — 인라인 검색창이므로 테두리/배경 제거 */
  border: none !important;
  outline: none !important;
  background: transparent !important;
  box-shadow: none !important;
  height: auto !important;
  padding: 0 !important;
  font-size: 0.8125rem;
}
.tag-picker-body[data-v-4200ee36] {
  flex: 1;
  overflow-y: auto;
  padding: 0.25rem 0;
}
.tag-picker-loading[data-v-4200ee36],
.tag-picker-empty[data-v-4200ee36] {
  padding: 1rem;
  text-align: center;
  color: var(--text-tertiary);
  font-size: 0.75rem;
}
.tag-picker-section[data-v-4200ee36] {
  margin-bottom: 0.25rem;
}
.tag-picker-section-title[data-v-4200ee36] {
  padding: 0.375rem 0.75rem 0.25rem;
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.025em;
}
.tag-picker-section-toggle[data-v-4200ee36] {
  padding: 0.375rem 0.75rem !important;
  height: auto !important;
  font-size: 0.6875rem !important;
  font-weight: 600 !important;
}
.tag-picker-item[data-v-4200ee36] {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  background: transparent;
  border: none;
  color: var(--text-primary);
  font-size: 0.8125rem;
  cursor: pointer;
  text-align: left;
}
.tag-picker-item[data-v-4200ee36]:hover:not(:disabled) {
  background: var(--surface-color-secondary);
}
.tag-picker-item--checked[data-v-4200ee36] {
  background: var(--surface-color-secondary);
}
.tag-picker-item--partial[data-v-4200ee36] {
  background: var(--surface-color-secondary);
}
.tag-picker-check[data-v-4200ee36] {
  flex-shrink: 0;
  width: 0.875rem;
  text-align: center;
}
.tag-picker-check--all[data-v-4200ee36] {
  color: var(--color-info-hover);
}
.tag-picker-check--some[data-v-4200ee36] {
  color: var(--color-warning-hover);
}
.tag-picker-check--none[data-v-4200ee36] {
  color: var(--text-tertiary);
}
.tag-picker-color[data-v-4200ee36] {
  flex-shrink: 0;
  display: inline-block;
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 999px;
  border: 1px solid var(--border-subtle);
}
.tag-picker-name[data-v-4200ee36] {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tag-picker-abbr[data-v-4200ee36] {
  flex-shrink: 0;
  font-size: 0.6875rem;
  color: var(--text-tertiary);
  font-family: ui-monospace, monospace;
}
.tag-picker-count[data-v-4200ee36] {
  flex-shrink: 0;
  font-size: 0.6875rem;
  color: var(--text-tertiary);
  background: var(--surface-color-secondary);
  padding: 0 0.375rem;
  border-radius: 999px;
}
.tag-picker-create[data-v-4200ee36] {
  margin-top: 0.25rem !important;
  border-top: 1px dashed var(--border-color) !important;
  padding: 0.5rem 0.75rem !important;
  height: auto !important;
  color: var(--color-info-hover) !important;
  font-size: 0.8125rem !important;
  border-radius: 0 !important;
}
.tag-picker-footer[data-v-4200ee36] {
  flex-shrink: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0.75rem;
  border-top: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  font-size: 0.6875rem;
  color: var(--text-tertiary);
}
.tag-picker-dirty-hint[data-v-4200ee36] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.tag-picker-dirty-hint--clean[data-v-4200ee36] {
  color: transparent;
}
.tag-picker-footer-buttons[data-v-4200ee36] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}


.tag-info-modal-backdrop[data-v-634bcbf0] {
  position: fixed;
  inset: 0;
  z-index: 1600;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--backdrop-bg);
}
.tag-info-modal[data-v-634bcbf0] {
  width: min(440px, calc(100vw - 2rem));
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
}
.tag-info-modal-header[data-v-634bcbf0] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-color);
}
.tag-info-modal-header h3[data-v-634bcbf0] {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
}
.tag-info-modal-body[data-v-634bcbf0] {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}
.tag-info-field[data-v-634bcbf0] {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.tag-info-field label[data-v-634bcbf0] {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-secondary);
}
.tag-info-field input[type="color"][data-v-634bcbf0] {
  border: 1px solid var(--border-color);
  border-radius: 4px;
  padding: 0.375rem 0.5rem;
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.8125rem;
  outline: none;
}
.tag-info-field-row[data-v-634bcbf0] {
  display: flex;
  gap: 0.5rem;
}
.tag-info-field-row > .tag-info-field[data-v-634bcbf0] {
  flex: 1;
  min-width: 0;
}
.tag-info-field select[data-v-634bcbf0] {
  border: 1px solid var(--border-color);
  border-radius: 4px;
  padding: 0.375rem 0.5rem;
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.8125rem;
  outline: none;
  cursor: pointer;
}
.tag-info-field select[data-v-634bcbf0]:disabled {
  background: var(--surface-color-secondary);
  color: var(--text-secondary);
  cursor: not-allowed;
}
.tag-info-field select[data-v-634bcbf0]:focus:not(:disabled) {
  border-color: var(--color-info);
}
.tag-info-color-row[data-v-634bcbf0] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.tag-info-color-picker[data-v-634bcbf0] {
  width: 2.5rem !important;
  height: 2rem !important;
  padding: 0.125rem !important;
  cursor: pointer;
}
.tag-info-color-hex[data-v-634bcbf0] {
  flex: 1;
  font-family: ui-monospace, monospace;
}
.tag-info-preview[data-v-634bcbf0] {
  flex-shrink: 0;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 500;
  border: 1px solid var(--border-subtle);
}
.tag-info-status-row[data-v-634bcbf0] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.tag-info-status-badge[data-v-634bcbf0] {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.1875rem 0.625rem;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
}
.tag-info-status-badge--active[data-v-634bcbf0] {
  background: var(--surface-success-soft);
  color: var(--color-success-hover);
}
.tag-info-status-badge--inactive[data-v-634bcbf0] {
  background: var(--surface-muted);
  color: var(--text-secondary);
}
.tag-info-status-toggle[data-v-634bcbf0] {
  margin-left: auto;
}
.tag-info-hint[data-v-634bcbf0] {
  font-size: 0.6875rem;
  color: var(--text-tertiary);
  margin-top: 0.125rem;
}

/* 토글 스위치 */
.toggle-switch[data-v-634bcbf0] {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 20px;
  cursor: pointer;
  flex-shrink: 0;
}
.toggle-switch--disabled[data-v-634bcbf0] {
  cursor: not-allowed;
  opacity: 0.6;
}
.toggle-switch input[data-v-634bcbf0] {
  opacity: 0;
  width: 0;
  height: 0;
}
.toggle-slider[data-v-634bcbf0] {
  position: absolute;
  inset: 0;
  background: var(--text-tertiary);
  border-radius: 20px;
  transition: background 0.2s;
}
.toggle-slider[data-v-634bcbf0]::before {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  left: 2px;
  bottom: 2px;
  background: var(--color-white);
  border-radius: 50%;
  transition: transform 0.2s;
}
.toggle-switch input:checked + .toggle-slider[data-v-634bcbf0] {
  background: var(--primary-color);
}
.toggle-switch input:checked + .toggle-slider[data-v-634bcbf0]::before {
  transform: translateX(16px);
}
.tag-info-error[data-v-634bcbf0] {
  padding: 0.5rem 0.75rem;
  background: var(--surface-danger-soft);
  border: 1px solid var(--color-danger);
  border-radius: 4px;
  color: var(--color-danger-hover);
  font-size: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.375rem;
}
.tag-info-modal-footer[data-v-634bcbf0] {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 0.5rem;
}


.merge-overlay[data-v-caec1729] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 99999;
}
.merge-dialog[data-v-caec1729] {
  width: 100%;
  max-width: 480px;
  margin: 0 1rem;
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
}
.merge-dialog__header[data-v-caec1729] {
  padding: 1rem 1.25rem 0.5rem;
  border-bottom: 1px solid var(--border-subtle);
}
.merge-dialog__title[data-v-caec1729] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}
.merge-dialog__body[data-v-caec1729] {
  padding: 0.75rem 1.25rem 1rem;
}
.merge-dialog__body--center[data-v-caec1729] {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
}

/* 미리보기 */
.merge-dialog__preview[data-v-caec1729] {
  margin-bottom: 0.75rem;
}
.merge-dialog__preview-label[data-v-caec1729] {
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-bottom: 0.375rem;
}
.merge-dialog__preview-box[data-v-caec1729] {
  padding: 0.625rem 0.75rem;
  background: var(--surface-muted);
  border-radius: 6px;
  font-size: 0.8rem;
  line-height: 1.6;
}
.merge-dialog__preview-before[data-v-caec1729] {
  color: var(--text-secondary);
}
.merge-dialog__preview-item[data-v-caec1729] {
  word-break: break-all;
}
.merge-dialog__preview-sep[data-v-caec1729] {
  color: var(--primary-color);
  font-weight: 600;
  margin: 0 0.125rem;
}
.merge-dialog__preview-arrow[data-v-caec1729] {
  color: var(--primary-color);
  font-size: 0.85rem;
  margin: 0.25rem 0;
}
.merge-dialog__preview-after[data-v-caec1729] {
  color: var(--text-primary);
  word-break: break-all;
}

/* 합치기 순서 */
.merge-dialog__order-section[data-v-caec1729] {
  margin-bottom: 0.75rem;
  padding: 0.625rem 0.75rem;
  background: var(--surface-muted);
  border-radius: 6px;
}
.merge-dialog__order-label[data-v-caec1729] {
  font-size: 0.8rem;
  color: var(--text-secondary);
  display: block;
  margin-bottom: 0.375rem;
}
.merge-dialog__order-radios[data-v-caec1729] {
  display: flex;
  gap: 1rem;
}

/* 옵션 */
.merge-dialog__options[data-v-caec1729] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.merge-dialog__option[data-v-caec1729] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--text-primary);
  cursor: pointer;
}
.merge-dialog__match-count[data-v-caec1729] {
  color: var(--primary-color);
  font-size: 0.8rem;
}

/* 규칙 등록 옵션 */
.merge-dialog__rule-options[data-v-caec1729] {
  margin-top: 0.75rem;
  padding: 0.625rem 0.75rem;
  background: var(--surface-muted);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.merge-dialog__rule-section[data-v-caec1729] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.merge-dialog__rule-label[data-v-caec1729] {
  font-size: 0.8rem;
  color: var(--text-secondary);
  white-space: nowrap;
}
.merge-dialog__rule-radios[data-v-caec1729] {
  display: flex;
  gap: 0.75rem;
}
.merge-dialog__rule-radios label[data-v-caec1729] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

/* 프로그래스 */
.merge-dialog__progress[data-v-caec1729] {
  width: 100%;
  text-align: center;
}
.merge-dialog__progress-bar[data-v-caec1729] {
  width: 100%;
  height: 4px;
  background: var(--border-color);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 0.75rem;
}
.merge-dialog__progress-fill[data-v-caec1729] {
  height: 100%;
  background: var(--primary-color);
  border-radius: 2px;
  animation: progress-indeterminate-caec1729 1.5s ease-in-out infinite;
}
@keyframes progress-indeterminate-caec1729 {
0% { width: 0; margin-left: 0;
}
50% { width: 60%; margin-left: 20%;
}
100% { width: 0; margin-left: 100%;
}
}
.merge-dialog__progress-text[data-v-caec1729] {
  font-size: 0.85rem;
  color: var(--text-secondary);
}

/* 결과 */
.merge-dialog__result[data-v-caec1729] {
  text-align: center;
  margin-bottom: 0.75rem;
}
.merge-dialog__result-icon[data-v-caec1729] {
  font-size: 2rem;
  color: var(--primary-color);
  margin-bottom: 0.25rem;
}
.merge-dialog__result-text[data-v-caec1729] {
  font-size: 0.95rem;
  font-weight: 600;
}
.merge-dialog__result-details[data-v-caec1729] {
  padding: 0.625rem 0.75rem;
  background: var(--surface-muted);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.merge-dialog__result-row[data-v-caec1729] {
  display: flex;
  justify-content: space-between;
  font-size: 0.85rem;
  color: var(--text-secondary);
}
.merge-dialog__result-row span[data-v-caec1729]:last-child {
  color: var(--text-primary);
  font-weight: 500;
}

/* 푸터 */
.merge-dialog__footer[data-v-caec1729] {
  padding: 0.75rem 1.25rem 1rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}


/* 전환 효과 */
.expand-enter-active[data-v-caec1729],
.expand-leave-active[data-v-caec1729] {
  transition: all 0.2s ease;
  overflow: hidden;
}
.expand-enter-from[data-v-caec1729],
.expand-leave-to[data-v-caec1729] {
  opacity: 0;
  max-height: 0;
  margin-top: 0;
  padding: 0 0.75rem;
}
.expand-enter-to[data-v-caec1729],
.expand-leave-from[data-v-caec1729] {
  opacity: 1;
  max-height: 200px;
}

.remove-overlay[data-v-19c7e443] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 99999;
}
.remove-dialog[data-v-19c7e443] {
  width: 100%;
  max-width: 520px;
  max-height: 85vh;
  margin: 0 1rem;
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
}
.remove-dialog__header[data-v-19c7e443] {
  padding: 1rem 1.25rem 0.5rem;
  border-bottom: 1px solid var(--border-subtle);
}
.remove-dialog__title[data-v-19c7e443] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}
.remove-dialog__body[data-v-19c7e443] {
  padding: 0.75rem 1.25rem 1rem;
  overflow-y: auto;
  flex: 1;
}
.remove-dialog__body--center[data-v-19c7e443] {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
}

/* 선택 항목 미리보기 */
.remove-dialog__preview[data-v-19c7e443] {
  margin-bottom: 0.75rem;
}
.remove-dialog__preview-label[data-v-19c7e443] {
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-bottom: 0.375rem;
}
.remove-dialog__preview-box[data-v-19c7e443] {
  padding: 0.625rem 0.75rem;
  background: var(--surface-muted);
  border-radius: 6px;
  font-size: 0.8rem;
  line-height: 1.6;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.remove-dialog__preview-item[data-v-19c7e443] {
  color: var(--text-secondary);
  word-break: break-all;
  text-decoration: line-through;
  opacity: 0.8;
}
.remove-dialog__preview-more[data-v-19c7e443] {
  color: var(--text-secondary);
  font-size: 0.75rem;
  opacity: 0.6;
}

/* 섹션 */
.remove-dialog__section[data-v-19c7e443] {
  margin-bottom: 0.75rem;
}
.remove-dialog__section-label[data-v-19c7e443] {
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-bottom: 0.375rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid var(--border-subtle);
}

/* 라디오 */
.remove-dialog__radios[data-v-19c7e443] {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.remove-dialog__radio[data-v-19c7e443] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--text-primary);
  cursor: pointer;
}


/* 패턴 편집 */
.remove-dialog__patterns[data-v-19c7e443] {
  margin-bottom: 0.75rem;
  padding: 0.625rem 0.75rem;
  background: var(--surface-muted);
  border-radius: 6px;
}
.remove-dialog__patterns-label[data-v-19c7e443] {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-bottom: 0.5rem;
}
.remove-dialog__pattern-row[data-v-19c7e443] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  margin-bottom: 0.375rem;
}
.remove-dialog__pattern-input[data-v-19c7e443] {
  flex: 1;
}
.remove-dialog__pattern-remove[data-v-19c7e443] {
  flex-shrink: 0;
}
.remove-dialog__pattern-error[data-v-19c7e443] {
  font-size: 0.75rem;
  color: var(--color-danger);
  margin-bottom: 0.25rem;
}
.remove-dialog__pattern-add[data-v-19c7e443] {
  border: 1px dashed var(--border-subtle) !important;
  border-radius: 4px !important;
  height: auto !important;
  padding: 0.25rem 0.5rem !important;
  font-size: 0.8rem !important;
}
.remove-dialog__pattern-add[data-v-19c7e443]:hover {
  border-color: var(--primary-color) !important;
}

/* 옵션 */
.remove-dialog__options[data-v-19c7e443] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.remove-dialog__option[data-v-19c7e443] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--text-primary);
  cursor: pointer;
}
.remove-dialog__match-count[data-v-19c7e443] {
  color: var(--primary-color);
  font-size: 0.8rem;
}

/* 매칭 미리보기 */
.remove-dialog__match-preview[data-v-19c7e443] {
  margin-bottom: 0.75rem;
  padding: 0.5rem 0.75rem;
  background: var(--surface-muted);
  border-radius: 6px;
  max-height: 160px;
  overflow-y: auto;
}
.remove-dialog__match-row[data-v-19c7e443] {
  display: flex;
  gap: 0.5rem;
  font-size: 0.8rem;
  line-height: 1.8;
}
.remove-dialog__match-page[data-v-19c7e443] {
  color: var(--primary-color);
  white-space: nowrap;
  min-width: 2.5rem;
}
.remove-dialog__match-text[data-v-19c7e443] {
  color: var(--text-secondary);
  word-break: break-all;
}
.remove-dialog__match-more[data-v-19c7e443] {
  font-size: 0.75rem;
  color: var(--text-secondary);
  opacity: 0.6;
  margin-top: 0.25rem;
}

/* 규칙 등록 옵션 */
.remove-dialog__rule-options[data-v-19c7e443] {
  margin-top: 0.25rem;
  margin-bottom: 0.5rem;
  padding: 0.625rem 0.75rem;
  background: var(--surface-muted);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.remove-dialog__rule-section[data-v-19c7e443] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.remove-dialog__rule-label[data-v-19c7e443] {
  font-size: 0.8rem;
  color: var(--text-secondary);
  white-space: nowrap;
}
.remove-dialog__rule-radios[data-v-19c7e443] {
  display: flex;
  gap: 0.75rem;
}
.remove-dialog__rule-radios label[data-v-19c7e443] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

/* 프로그래스 */
.remove-dialog__progress[data-v-19c7e443] {
  width: 100%;
  text-align: center;
}
.remove-dialog__progress-bar[data-v-19c7e443] {
  width: 100%;
  height: 4px;
  background: var(--border-color);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 0.75rem;
}
.remove-dialog__progress-fill[data-v-19c7e443] {
  height: 100%;
  background: var(--primary-color);
  border-radius: 2px;
  animation: remove-progress-indeterminate-19c7e443 1.5s ease-in-out infinite;
}
@keyframes remove-progress-indeterminate-19c7e443 {
0% { width: 0; margin-left: 0;
}
50% { width: 60%; margin-left: 20%;
}
100% { width: 0; margin-left: 100%;
}
}
.remove-dialog__progress-text[data-v-19c7e443] {
  font-size: 0.85rem;
  color: var(--text-secondary);
}

/* 결과 */
.remove-dialog__result[data-v-19c7e443] {
  text-align: center;
  margin-bottom: 0.75rem;
}
.remove-dialog__result-icon[data-v-19c7e443] {
  font-size: 2rem;
  color: var(--primary-color);
  margin-bottom: 0.25rem;
}
.remove-dialog__result-text[data-v-19c7e443] {
  font-size: 0.95rem;
  font-weight: 600;
}
.remove-dialog__result-details[data-v-19c7e443] {
  padding: 0.625rem 0.75rem;
  background: var(--surface-muted);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.remove-dialog__result-row[data-v-19c7e443] {
  display: flex;
  justify-content: space-between;
  font-size: 0.85rem;
  color: var(--text-secondary);
}
.remove-dialog__result-row span[data-v-19c7e443]:last-child {
  color: var(--text-primary);
  font-weight: 500;
}

/* 푸터 */
.remove-dialog__footer[data-v-19c7e443] {
  padding: 0.75rem 1.25rem 1rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}


/* 전환 효과 */
.expand-enter-active[data-v-19c7e443],
.expand-leave-active[data-v-19c7e443] {
  transition: all 0.2s ease;
  overflow: hidden;
}
.expand-enter-from[data-v-19c7e443],
.expand-leave-to[data-v-19c7e443] {
  opacity: 0;
  max-height: 0;
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-bottom: 0;
}
.expand-enter-to[data-v-19c7e443],
.expand-leave-from[data-v-19c7e443] {
  opacity: 1;
  max-height: 400px;
}

/* ConfirmDialog와 동일한 토큰 사용 (다크 테마 기반) */
.page-col-overlay[data-v-d59c3cfa] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 99999;
}
.page-col-dialog[data-v-d59c3cfa] {
  width: 100%;
  max-width: 480px;
  margin: 0 1rem;
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
}
.page-col-dialog__header[data-v-d59c3cfa] {
  padding: 1rem 1.25rem 0.75rem;
  border-bottom: 1px solid var(--border-subtle);
}
.page-col-dialog__title[data-v-d59c3cfa] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.page-col-dialog__body[data-v-d59c3cfa] {
  padding: 0.875rem 1.25rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}
.page-col-field[data-v-d59c3cfa] {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.page-col-field__label[data-v-d59c3cfa] {
  font-size: 0.8rem;
  color: var(--text-secondary);
}
.page-col-field__input[data-v-d59c3cfa],
.page-col-field__select[data-v-d59c3cfa] {
  width: 100%;
  padding: 0.4rem 0.625rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--surface-muted);
  color: var(--text-primary);
  font-size: 0.85rem;
  outline: none;
  box-sizing: border-box;
}
.page-col-field__readonly[data-v-d59c3cfa] {
  padding: 0.4rem 0.625rem;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  background: var(--surface-muted);
  color: var(--text-primary);
  font-size: 0.85rem;
  font-weight: 600;
}
.page-col-field__input[data-v-d59c3cfa]:focus,
.page-col-field__select[data-v-d59c3cfa]:focus {
  border-color: var(--primary-color);
}
.page-col-radio-group[data-v-d59c3cfa] {
  display: flex;
  gap: 1.25rem;
  flex-wrap: wrap;
}
.page-col-radio[data-v-d59c3cfa],
.page-col-checkbox[data-v-d59c3cfa] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--text-primary);
  cursor: pointer;
  user-select: none;
}
.page-col-radio small[data-v-d59c3cfa] {
  color: var(--text-secondary);
  font-size: 0.75rem;
}
.page-col-hint[data-v-d59c3cfa] {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-top: 0.25rem;
}
.page-col-preview[data-v-d59c3cfa] {
  background: var(--surface-muted);
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  padding: 0.625rem 0.75rem;
}
.page-col-preview__title[data-v-d59c3cfa] {
  font-size: 0.8rem;
  font-weight: 600;
  margin-bottom: 0.375rem;
  color: var(--text-primary);
}
.page-col-preview__list[data-v-d59c3cfa] {
  margin: 0;
  padding-left: 1.125rem;
  font-size: 0.8rem;
  color: var(--text-secondary);
}
.page-col-preview__warn[data-v-d59c3cfa] {
  color: var(--color-danger);
}
.page-col-error[data-v-d59c3cfa] {
  color: var(--color-danger);
  font-size: 0.8rem;
}
.page-col-dialog__footer[data-v-d59c3cfa] {
  padding: 0.75rem 1.25rem 1rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  border-top: 1px solid var(--border-subtle);
}
@media (max-width: 480px) {
.page-col-dialog[data-v-d59c3cfa] {
    margin: 0 0.75rem;
}
}

.change-rules-panel[data-v-1a95b44a] {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}
.change-rules-panel__header[data-v-1a95b44a] {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--border-color);
  font-size: 13px;
  font-weight: 600;
}
.change-rules-panel__title[data-v-1a95b44a] {
  flex: 1;
}
.change-rules-panel__intro[data-v-1a95b44a] {
  padding: 20px;
  text-align: center;
}
.change-rules-panel__intro p[data-v-1a95b44a] {
  color: var(--text-secondary);
  font-size: 13px;
  margin-bottom: 12px;
}
.change-rules-panel__loading[data-v-1a95b44a] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 30px;
  color: var(--text-secondary);
  font-size: 13px;
}
.change-rules-panel__results[data-v-1a95b44a] {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
}
.change-rules-panel__summary[data-v-1a95b44a] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  background: var(--surface-color-secondary);
  border-radius: 6px;
  font-size: 12px;
  color: var(--text-secondary);
  margin-bottom: 8px;
  flex-wrap: wrap;
}

/* summary 행에서 우측 정렬 — AppButton 으로 마이그됐고 레이아웃만 유지 */
.change-rules-panel__save-all-btn[data-v-1a95b44a] {
  margin-left: auto;
}
.change-rules-panel__empty[data-v-1a95b44a] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 30px 20px;
  color: var(--text-tertiary);
  font-size: 13px;
}
.change-rules-panel__empty i[data-v-1a95b44a] {
  font-size: 28px;
  color: var(--success-color);
}
.change-rules-panel__empty p[data-v-1a95b44a] {
  margin: 0;
  text-align: center;
}
.change-rules-panel__pattern[data-v-1a95b44a] {
  border: 1px solid var(--border-color);
  border-radius: 6px;
  padding: 8px;
  margin-bottom: 6px;
}
.change-rules-panel__pattern-header[data-v-1a95b44a] {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
}
.change-rules-panel__pattern-badge[data-v-1a95b44a] {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 600;
  color: var(--color-white);
}
.change-rules-panel__pattern-badge--delete[data-v-1a95b44a] { background: var(--color-danger);
}
.change-rules-panel__pattern-badge--edit[data-v-1a95b44a] { background: var(--color-info);
}
.change-rules-panel__pattern-badge--merge[data-v-1a95b44a] { background: var(--color-purple);
}
.change-rules-panel__pattern-badge--split[data-v-1a95b44a] { background: var(--color-orange);
}
.change-rules-panel__pattern-source[data-v-1a95b44a] {
  font-size: 11px;
  color: var(--text-tertiary);
  padding: 1px 4px;
  border: 1px solid var(--border-color);
  border-radius: 3px;
}
.change-rules-panel__pattern-desc[data-v-1a95b44a] {
  font-size: 12px;
  flex: 1;
}
.change-rules-panel__pattern-meta[data-v-1a95b44a] {
  display: flex;
  gap: 8px;
  margin-bottom: 4px;
  font-size: 11px;
}
.change-rules-panel__confidence[data-v-1a95b44a] {
  font-weight: 600;
}
.change-rules-panel__confidence--high[data-v-1a95b44a] { color: var(--success-color);
}
.change-rules-panel__confidence--medium[data-v-1a95b44a] { color: var(--color-warning);
}
.change-rules-panel__confidence--low[data-v-1a95b44a] { color: var(--color-danger);
}
.change-rules-panel__occurrence[data-v-1a95b44a] {
  color: var(--text-secondary);
}
.change-rules-panel__pattern-info[data-v-1a95b44a] {
  margin: 4px 0;
}
.change-rules-panel__pattern-info code[data-v-1a95b44a] {
  display: inline-block;
  padding: 2px 6px;
  background: var(--surface-color-secondary);
  border-radius: 3px;
  font-size: 11px;
  word-break: break-all;
}
.change-rules-panel__samples[data-v-1a95b44a] {
  margin: 4px 0 4px 12px;
}
.change-rules-panel__sample[data-v-1a95b44a] {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  padding: 2px 0;
  color: var(--text-secondary);
}
.change-rules-panel__sample-page[data-v-1a95b44a] {
  font-weight: 600;
  color: var(--text-tertiary);
  min-width: 24px;
}
.change-rules-panel__sample-old[data-v-1a95b44a] {
  text-decoration: line-through;
  color: var(--color-danger);
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.change-rules-panel__sample-arrow[data-v-1a95b44a] {
  font-size: 10px;
  color: var(--text-tertiary);
}
.change-rules-panel__sample-new[data-v-1a95b44a] {
  color: var(--success-color);
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.change-rules-panel__sample-text[data-v-1a95b44a] {
  max-width: 250px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.change-rules-panel__pattern-actions[data-v-1a95b44a] {
  display: flex;
  gap: 6px;
  margin-top: 6px;
}
.change-rules-panel__status[data-v-1a95b44a] {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 3px;
}
.change-rules-panel__status--approved[data-v-1a95b44a] {
  color: var(--success-color);
  background: var(--surface-success-soft);
}
.change-rules-panel__status--rejected[data-v-1a95b44a] {
  color: var(--text-tertiary);
  background: var(--surface-color-secondary);
}

/* 승인 다이얼로그 */
.change-rules-panel__overlay[data-v-1a95b44a] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.change-rules-panel__dialog[data-v-1a95b44a] {
  background: var(--surface-color);
  border-radius: 8px;
  width: 360px;
  max-width: 90vw;
  box-shadow: var(--shadow-lg);
}
.change-rules-panel__dialog-header[data-v-1a95b44a] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border-color);
  font-weight: 600;
  font-size: 14px;
}
.change-rules-panel__dialog-body[data-v-1a95b44a] {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.change-rules-panel__dialog-body label[data-v-1a95b44a] {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  color: var(--text-secondary);
}
.change-rules-panel__dialog-footer[data-v-1a95b44a] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 16px;
  border-top: 1px solid var(--border-color);
}


.history-tab[data-v-c4af8a15] {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}
.history-tab__filters[data-v-c4af8a15] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}

/* 액션 버튼 묶음 — 우측 정렬, 좁아지면 그룹째 아랫줄로 */
.history-tab__actions[data-v-c4af8a15] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  margin-left: auto;
}
.history-tab__filter-select[data-v-c4af8a15] {
  padding: 0.25rem 0.5rem;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.75rem;
  outline: none;
}

/* .history-tab__action-btn → AppButton variant="secondary/danger" size="md" + :active */
.history-tab__action-label[data-v-c4af8a15] {
  display: none;
}
@media (min-width: 480px) {
.history-tab__action-label[data-v-c4af8a15] { display: inline;
}
}

/* 벌크 액션 바 — 공통 ListBulkBar 를 감싸는 패딩 래퍼 */
.history-tab__bulk-wrap[data-v-c4af8a15] {
  padding: 0.375rem 0.75rem;
  flex-shrink: 0;
}
.history-tab__bulk-checkbox[data-v-c4af8a15] {
  cursor: pointer;
  flex-shrink: 0;
}

/* 통계 바 */
.history-tab__stats-bar[data-v-c4af8a15] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  background: var(--surface-color-secondary);
  border-bottom: 1px solid var(--border-color);
  font-size: 0.6875rem;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.history-tab__stats-label[data-v-c4af8a15] {
  color: var(--text-tertiary);
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.history-tab__stat-badge[data-v-c4af8a15] {
  color: var(--text-secondary);
}
.history-tab__stat-badge strong[data-v-c4af8a15] {
  color: var(--primary-color);
}

/* 스냅샷 */
.history-tab__snapshot[data-v-c4af8a15] {
  background: var(--surface-cyan-soft);
  border-bottom: 1px solid var(--border-color);
}
.history-tab__snapshot-row[data-v-c4af8a15] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.75rem;
}
.history-tab__snapshot-row[data-v-c4af8a15]:hover {
  background: var(--surface-info-soft);
}
.history-tab__snapshot-icon[data-v-c4af8a15] {
  font-size: 0.5rem;
  color: var(--color-cyan);
  width: 10px;
  text-align: center;
  flex-shrink: 0;
}
.history-tab__snapshot-name[data-v-c4af8a15] {
  color: var(--text-primary);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}
.history-tab__empty-msg[data-v-c4af8a15] {
  padding: 0.5rem 1.5rem;
  font-size: 0.75rem;
  color: var(--text-tertiary);
}

/* 배치 그룹 */
.history-tab__batch[data-v-c4af8a15] {
  border-bottom: 1px solid var(--border-color);
}
.history-tab__batch-header[data-v-c4af8a15] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 0.75rem;
  cursor: pointer;
}
.history-tab__batch-header[data-v-c4af8a15]:hover {
  background: var(--surface-hover);
}
.history-tab__batch-chevron[data-v-c4af8a15] {
  font-size: 0.5rem;
  color: var(--text-tertiary);
  width: 10px;
}
.history-tab__batch-chevron--clickable[data-v-c4af8a15] {
  cursor: pointer;
  padding: 4px;
  margin: -4px;
  width: auto;
  font-size: 0.7rem;
}
.history-tab__batch-chevron--clickable[data-v-c4af8a15]:hover {
  color: var(--text-primary);
}
.history-tab__batch-desc[data-v-c4af8a15] {
  font-size: 0.8125rem;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 12rem;
}
.history-tab__batch-count[data-v-c4af8a15] {
  font-size: 0.6875rem;
  color: var(--text-secondary);
  font-weight: 600;
}
.history-tab__batch-children[data-v-c4af8a15] {
  border-top: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
}

/* 자식 행들 사이는 1px 구분선, 마지막 행은 외부 그룹의 border-bottom과 겹치지 않도록 제거 */
.history-tab__batch-children > .history-tab__item--nested[data-v-c4af8a15]:last-child {
  border-bottom: none;
}

/* 최초 추출(extract) 이력은 그룹 헤더 없이 자식만 top-level처럼 표시 */
.history-tab__batch--extract .history-tab__batch-children[data-v-c4af8a15] {
  border-top: none;
  background: transparent;
}

/* 선택/포커스 표시 - 내용탭과 동일한 스타일 */
.history-tab__batch-header[data-v-c4af8a15],
.history-tab__snapshot-row[data-v-c4af8a15],
.history-tab__item--nested[data-v-c4af8a15] {
  border-left: 3px solid transparent;
  transition: background-color 0.15s, border-color 0.15s;
}
.history-tab__batch-header.history-tab__item--focused[data-v-c4af8a15],
.history-tab__snapshot.history-tab__item--focused .history-tab__snapshot-row[data-v-c4af8a15],
.history-tab__item--nested.history-tab__item--focused[data-v-c4af8a15] {
  background: var(--surface-info-soft);
  border-left-color: var(--primary-color);
}

/* 이력 목록 */
.history-tab__list[data-v-c4af8a15] {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
  outline: none;
}
.history-tab__loading[data-v-c4af8a15] {
  display: flex;
  justify-content: center;
  padding: 2rem;
  color: var(--text-tertiary);
}
.history-tab__empty[data-v-c4af8a15] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  gap: 0.5rem;
}
.history-tab__empty-icon[data-v-c4af8a15] {
  font-size: 1.5rem;
  color: var(--text-tertiary);
}
.history-tab__empty p[data-v-c4af8a15] {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--text-tertiary);
}
.history-tab__item[data-v-c4af8a15] {
  padding: 0;
  border-bottom: 1px solid var(--border-color);
}
.history-tab__item[data-v-c4af8a15]:hover {
  background: var(--surface-hover);
}
.history-tab__item-header[data-v-c4af8a15] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.5rem 0 0.375rem;
}
.history-tab__node-row[data-v-c4af8a15] {
  display: flex;
  align-items: flex-start;
}

/* 태그 행: 내용 노드 내부 페이지 라벨 숨기고 외부에 별도 표시 (순서: 칩 → 페이지 → 버튼) */
.history-tab__node-row--has-tag[data-v-c4af8a15] {
  align-items: center;
}
.history-tab__node-row--has-tag[data-v-c4af8a15] .content-node__page {
  display: none;
}
.history-tab__node-page[data-v-c4af8a15] {
  flex-shrink: 0;
  align-self: center;
  min-width: 2rem;
  text-align: right;
  color: var(--text-tertiary);
  font-size: 0.6875rem;
  white-space: nowrap;
  margin-left: 0.25rem;
}
.history-tab__node-row--clickable[data-v-c4af8a15] {
  cursor: pointer;
}
.history-tab__node-row--clickable[data-v-c4af8a15]:hover {
  background: var(--surface-hover);
}
.history-tab__node-row[data-v-c4af8a15] .content-node,
.history-tab__item[data-v-c4af8a15] >  .content-node {
  flex: 1;
  min-width: 0;
}

/* 그룹 헤더에 사용하는 태그 칩 (부여/회수 그룹 모두 동일 스타일) */
.history-tab__tag-chip[data-v-c4af8a15] {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  font-size: 0.6875rem;
  padding: 0.0625rem 0.5rem;
  border-radius: 999px;
  font-weight: 500;
  white-space: nowrap;
  border: 1px solid var(--border-subtle);
  max-width: 8rem;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 요소별 칩 — 페이지/버튼 옆 메타 영역에 작게 표시 */
.history-tab__tag-chip--mini[data-v-c4af8a15] {
  font-size: 0.625rem;
  padding: 0 0.375rem;
  max-width: 5rem;
  margin-left: 0.25rem;
  align-self: center;
}
.history-tab__btn-area[data-v-c4af8a15] {
  flex-shrink: 0;
  margin-right: 0.5rem;
  margin-left: 0.25rem;
  display: flex;
  gap: 0.25rem;
  align-self: center;
  align-items: center;
  justify-content: flex-end;
}

/* .history-tab__btn-area .history-tab__goto-btn, .history-tab__rollback-btn → AppButton */
.history-tab__item.history-tab__item--nested[data-v-c4af8a15] {
  padding-left: 0.25rem;
}
.history-tab__action-badge[data-v-c4af8a15] {
  font-size: 0.625rem;
  padding: 0.0625rem 0.375rem;
  border-radius: 3px;
  font-weight: 600;
  white-space: nowrap;
  display: inline-block;
  min-width: 2.75rem;
  text-align: center;
}
.history-tab__action-badge--add[data-v-c4af8a15] { background: var(--surface-success-soft); color: var(--color-success-hover);
}
.history-tab__action-badge--edit[data-v-c4af8a15] { background: var(--surface-info-soft); color: var(--color-info-hover);
}
.history-tab__action-badge--delete[data-v-c4af8a15] { background: var(--surface-danger-soft); color: var(--color-danger-hover);
}
.history-tab__action-badge--restore[data-v-c4af8a15] { background: var(--surface-warning-soft); color: var(--color-warning-hover);
}
.history-tab__action-badge--move[data-v-c4af8a15] { background: var(--surface-orange-soft); color: var(--color-orange);
}
.history-tab__action-badge--indent[data-v-c4af8a15],
.history-tab__action-badge--outdent[data-v-c4af8a15] { background: var(--surface-indigo-soft); color: var(--color-indigo);
}
.history-tab__action-badge--align_set[data-v-c4af8a15] { background: var(--surface-cyan-soft); color: var(--color-cyan);
}
.history-tab__action-badge--rollback[data-v-c4af8a15] { background: var(--surface-purple-soft); color: var(--color-purple);
}
.history-tab__action-badge--merge[data-v-c4af8a15] { background: var(--surface-pink-soft); color: var(--color-pink);
}
.history-tab__action-badge--split[data-v-c4af8a15] { background: var(--surface-lime-soft); color: var(--color-lime);
}
.history-tab__action-badge--snapshot[data-v-c4af8a15] { background: var(--surface-cyan-soft); color: var(--color-cyan);
}
.history-tab__action-badge--tag_added[data-v-c4af8a15] { background: var(--surface-cyan-soft); color: var(--color-cyan);
}
.history-tab__action-badge--tag_removed[data-v-c4af8a15] { background: var(--surface-muted); color: var(--text-tertiary);
}
.history-tab__user-inline[data-v-c4af8a15] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.history-tab__user-avatar[data-v-c4af8a15] {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.history-tab__user-avatar-icon[data-v-c4af8a15] {
  font-size: 0.5rem;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--surface-active);
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.history-tab__item-user[data-v-c4af8a15] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  color: var(--text-primary);
  font-weight: 500;
  margin-left: auto;
}
.history-tab__item-time[data-v-c4af8a15] {
  flex-shrink: 0;
  font-size: 0.625rem;
  color: var(--text-tertiary);
}

/* .history-tab__rollback-btn, .history-tab__goto-btn → AppButton icon-only variant="ghost/danger" size="xs" */
.history-tab__rollback-btn[data-v-c4af8a15],
.history-tab__goto-btn[data-v-c4af8a15] {
  flex-shrink: 0;
  margin-left: 0.25rem;
}

/* 수정 이력 diff 뷰 */
.history-tab__diff[data-v-c4af8a15] {
  font-size: 0.8125rem;
  font-family: inherit;
}
.history-tab__diff-row[data-v-c4af8a15] {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
  padding: 0.1875rem 0.75rem 0.1875rem 0;
  line-height: 1.5;
  word-break: break-all;
}
.history-tab__diff-label[data-v-c4af8a15] {
  flex-shrink: 0;
  font-size: 0.6875rem;
  font-weight: 600;
  width: 46px;
  text-align: right;
}
.history-tab__diff-row--old .history-tab__diff-label[data-v-c4af8a15] {
  color: var(--color-danger-hover);
}
.history-tab__diff-row--new .history-tab__diff-label[data-v-c4af8a15] {
  color: var(--color-success-hover);
}
.history-tab__diff-text[data-v-c4af8a15] {
  flex: 1;
  min-width: 0;
  white-space: pre-wrap;
}
/* 정렬 변경 표시 */
.history-tab__align-value[data-v-c4af8a15] {
  margin: 0 0.25rem;
  color: var(--text-secondary);
}
.history-tab__align-arrow[data-v-c4af8a15] {
  margin: 0 0.375rem;
  color: var(--text-tertiary);
  font-size: 0.625rem;
}
.history-tab__diff-page[data-v-c4af8a15] {
  flex-shrink: 0;
  margin-left: auto;
  font-size: 0.6875rem;
  color: var(--text-tertiary);
}

/* .history-tab__diff-goto → AppButton icon-only variant="ghost" size="xs" */
.history-tab__diff-goto[data-v-c4af8a15] {
  flex-shrink: 0;
  margin-left: 0.25rem;
}
.history-tab__diff-del[data-v-c4af8a15] {
  background: var(--surface-danger-soft);
  text-decoration: line-through;
  border-radius: 2px;
  padding: 0 1px;
}
.history-tab__diff-ins[data-v-c4af8a15] {
  background: var(--surface-success-soft);
  border-radius: 2px;
  padding: 0 1px;
}
.history-tab__pagination[data-v-c4af8a15] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.5rem;
  font-size: 0.75rem;
}
.history-tab__pagination button[data-v-c4af8a15] {
  padding: 0.25rem 0.5rem;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: var(--surface-color);
  color: var(--text-primary);
  cursor: pointer;
  line-height: 1;
}
.history-tab__pagination button[data-v-c4af8a15]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.history-tab__pagination button[data-v-c4af8a15]:hover:not(:disabled) {
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.history-tab__pagination span[data-v-c4af8a15] {
  color: var(--text-secondary);
  line-height: 1;
}

/* 검색 바 */
.history-tab__search-bar[data-v-c4af8a15] {
  flex-shrink: 0;
  padding: 0.375rem 0.75rem;
  border-bottom: 1px solid var(--border-color);
}
.history-tab__search-mark[data-v-c4af8a15] {
  background: var(--surface-warning-soft);
  color: inherit;
  border-radius: 2px;
  padding: 0 1px;
}

.collab-bar[data-v-9dc6575b] {
  display: inline-flex;
  align-items: center;
}
.collab-bar__avatars[data-v-9dc6575b] {
  display: flex;
  align-items: center;
}
.collab-bar__avatar[data-v-9dc6575b] {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.625rem;
  font-weight: 700;
  color: var(--color-white);
  border: 2px solid var(--surface-color);
  cursor: default;
  overflow: hidden;
  position: relative;
  transition: transform 0.15s;
}
.collab-bar__avatar[data-v-9dc6575b]:hover {
  transform: scale(1.1);
}
.collab-bar__avatar--current[data-v-9dc6575b] {
  border: 2px solid var(--primary-color);
  box-shadow: 0 0 0 1px var(--primary-color);
}
.collab-bar__avatar-img[data-v-9dc6575b] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.meta-issues-tab[data-v-40f0b536] {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}
.meta-issues-tab__header[data-v-40f0b536] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 8px;
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}
.meta-issues-tab__counts[data-v-40f0b536] {
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 13px;
}
.meta-issues-tab__count[data-v-40f0b536] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.meta-issues-tab__count--error[data-v-40f0b536] { color: var(--color-danger);
}
.meta-issues-tab__count--warning[data-v-40f0b536] { color: var(--color-warning);
}
.meta-issues-tab__count--info[data-v-40f0b536] { color: var(--color-info);
}
.meta-issues-tab__count-label[data-v-40f0b536] {
  font-size: 12px;
  opacity: 0.85;
}

/* 공통 ListBulkBar 를 감싸는 패딩 래퍼 */
.meta-issues-tab__bulk-wrap[data-v-40f0b536] {
  padding: 6px 12px;
  flex-shrink: 0;
}
.meta-issues-tab__item-checkbox[data-v-40f0b536] {
  display: inline-flex;
  align-items: center;
  margin: 0 6px 0 4px;
}
.meta-issues-tab__item--selected[data-v-40f0b536] {
  background: var(--surface-primary-soft);
}
/* 내용 탭(.content-node--selected) / 변경 탭(.history-tab__item--focused) 와 동일한 선택 표시 */
.meta-issues-tab__item--active[data-v-40f0b536] {
  background: var(--surface-info-soft);
}
.meta-issues-tab__empty-count[data-v-40f0b536] {
  color: var(--text-tertiary);
  font-size: 13px;
}

/* 작업 중 — 클릭 시 취소되도록 disabled 는 아니지만 작업 중임을 색으로 표시 */
.meta-issues-tab__action-btn--busy[data-v-40f0b536] {
  border-color: var(--color-warning) !important;
  color: var(--color-warning) !important;
}
.meta-issues-tab__action-btn--busy[data-v-40f0b536]:hover {
  border-color: var(--color-warning) !important;
  color: var(--color-warning) !important;
  background: var(--surface-muted) !important;
}
.meta-issues-tab__action-label[data-v-40f0b536] {
  display: none;
}
@media (min-width: 480px) {
.meta-issues-tab__action-label[data-v-40f0b536] { display: inline;
}
}
.meta-issues-tab__state[data-v-40f0b536] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  gap: 8px;
  color: var(--text-tertiary);
  font-size: 14px;
}
.meta-issues-tab__state--error[data-v-40f0b536] { color: var(--color-danger);
}
.meta-issues-tab__list[data-v-40f0b536] {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  flex: 1;
}
.meta-issues-tab__item[data-v-40f0b536] {
  border-bottom: 1px solid var(--border-color);
  /* 내용 탭(.content-node) / 변경 탭(.history-tab__item) 행 높이·폰트와 동일 */
  padding: 0.25rem 0.75rem 0.25rem 0.375rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  display: flex;
  align-items: center;
  gap: 0.375rem;
  transition: background-color 0.15s, border-color 0.15s;
}
.meta-issues-tab__item--error[data-v-40f0b536] { border-left: 3px solid var(--color-danger);
}
.meta-issues-tab__item--warning[data-v-40f0b536] { border-left: 3px solid var(--color-warning);
}
.meta-issues-tab__item--info[data-v-40f0b536] { border-left: 3px solid var(--color-info);
}
.meta-issues-tab__item-main[data-v-40f0b536] {
  /* override AppButton defaults: 이 버튼은 행 전체를 채우는 인라인 네비게이션 트리거 */
  flex: 1 !important;
  min-width: 0 !important;
  padding: 0 !important;
  height: auto !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  font: inherit !important;
  text-align: left !important;
  width: auto !important;
  /* 메시지가 길면 줄바꿈 — AppButton 기본 nowrap 해제 */
  white-space: normal !important;
}
/* 행 hover — 변경 탭(.history-tab__item:hover) 와 동일 */
.meta-issues-tab__item[data-v-40f0b536]:hover:not(.meta-issues-tab__item--active) {
  background: var(--surface-hover);
}
.meta-issues-tab__icon--error[data-v-40f0b536] { color: var(--color-danger);
}
.meta-issues-tab__icon--warning[data-v-40f0b536] { color: var(--color-warning);
}
.meta-issues-tab__icon--info[data-v-40f0b536] { color: var(--color-info);
}
.meta-issues-tab__page[data-v-40f0b536] {
  font-weight: 600;
  font-size: 13px;
  color: var(--text-secondary);
  flex-shrink: 0;
}
.meta-issues-tab__message[data-v-40f0b536] {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  /* 화면을 벗어나면 가로 스크롤 대신 다음 줄로 넘어가게 한다 */
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.meta-issues-tab__actions[data-v-40f0b536] {
  display: flex;
  gap: 2px;
  flex-shrink: 0;
}
.meta-issues-tab__action-icon--primary[data-v-40f0b536]:hover:not(:disabled) {
  color: var(--color-info) !important;
}

/* 헤더 액션 영역 */
.meta-issues-tab__header-actions[data-v-40f0b536] {
  display: flex;
  gap: 4px;
}

/* 필터 바 */
.meta-issues-tab__filter-bar[data-v-40f0b536] {
  padding: 6px 12px;
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}

/* 그룹 헤더 */
.meta-issues-tab__group-header[data-v-40f0b536] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  background: var(--surface-muted);
  border-bottom: 1px solid var(--border-color);
  cursor: pointer;
  font-weight: 600;
  font-size: 13px;
  user-select: none;
}
.meta-issues-tab__group-header[data-v-40f0b536]:hover { background: var(--surface-hover);
}
.meta-issues-tab__group-header--error[data-v-40f0b536] { border-left: 3px solid var(--color-danger);
}
.meta-issues-tab__group-header--warning[data-v-40f0b536] { border-left: 3px solid var(--color-warning);
}
.meta-issues-tab__group-header--info[data-v-40f0b536] { border-left: 3px solid var(--color-info);
}
.meta-issues-tab__group-toggle[data-v-40f0b536] {
  font-size: 11px;
  color: var(--text-tertiary);
  width: 12px;
}
.meta-issues-tab__group-title[data-v-40f0b536] {
  flex: 0 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.meta-issues-tab__group-count[data-v-40f0b536] {
  color: var(--text-tertiary);
  font-weight: normal;
  font-size: 12px;
  flex-shrink: 0;
}
.meta-issues-tab__group-spacer[data-v-40f0b536] {
  flex: 1;
}
.meta-issues-tab__item--indented[data-v-40f0b536] {
  padding-left: 44px;
}

.mobile-proxy-input[data-v-3603a346] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  padding: 0;
  border: none;
  pointer-events: none;
}
.meta-content-tree[data-v-3603a346] {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
  outline: none;
}

/* 검색 + 필터 바 */
.content-tree__toolbar[data-v-3603a346] {
  flex-shrink: 0;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--border-color);
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  position: relative;
}
.content-tree__toolbar-row[data-v-3603a346] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.content-tree__toolbar-row > .content-tree__search[data-v-3603a346] {
  flex: 1;
  min-width: 0;
}
.content-tree__selection-nav[data-v-3603a346] {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.125rem;
}


/* 활성/제거됨 탭 */
.content-tree__tabs[data-v-3603a346] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0;
  border-bottom: 1px solid var(--border-color);
  padding: 0 0.75rem;
  margin-top: 0.25rem;
}
.content-tree__tab-action[data-v-3603a346] {
  margin-left: auto;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.1875rem 0.5rem;
  border: none;
  border-radius: 4px;
  font-size: 0.6875rem;
  cursor: pointer;
  transition: background 0.15s;
}
.content-tree__tab-action--remove[data-v-3603a346] {
  background: var(--surface-danger-soft);
  color: var(--color-danger);
}
.content-tree__tab-action--remove[data-v-3603a346]:hover {
  background: var(--surface-danger-soft);
}
.content-tree__tab-action--restore[data-v-3603a346] {
  background: var(--surface-success-soft);
  color: var(--success-color);
}
.content-tree__tab-action--restore[data-v-3603a346]:hover {
  background: var(--surface-success-soft);
  filter: brightness(1.2);
}

/* 트리 스크롤 영역 */
.content-tree__body[data-v-3603a346] {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  padding: 0.25rem 0.5rem;
  outline: none;
  position: relative;
}

/* 다중 선택 플로팅 액션 버튼 */
.floating-actions[data-v-3603a346] {
  position: absolute;
  left: 60%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.25rem;
  padding: 0.375rem;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  box-shadow: var(--shadow-md);
  z-index: 10;
  transform: translate(-50%, -50%);
  pointer-events: auto;
}
.floating-actions__btn[data-v-3603a346] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: none;
  background: none;
  color: var(--text-secondary);
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.75rem;
  transition: background 0.15s, color 0.15s;
}
.floating-actions__btn[data-v-3603a346]:hover {
  background: var(--primary-color);
  color: var(--color-white);
}
.floating-actions__btn--danger[data-v-3603a346]:hover {
  background: var(--color-danger);
  color: var(--color-white);
}

/* 행 사이 삽입 인디케이터 */
.insert-indicator[data-v-3603a346] {
  position: absolute;
  left: 0;
  right: 0;
  height: 0;
  display: flex;
  align-items: center;
  z-index: 5;
  pointer-events: none;
  transform: translateY(-50%);
}
.insert-indicator__line[data-v-3603a346] {
  flex: 1;
  height: 1px;
  background: var(--primary-color, var(--color-info));
  opacity: 0.3;
}
.insert-indicator__btn[data-v-3603a346] {
  pointer-events: auto;
  flex-shrink: 0;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: none;
  background: var(--primary-color, var(--color-info));
  color: var(--color-white);
  font-size: 0.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.35;
  transition: opacity 0.15s, transform 0.1s;
}
.insert-indicator__btn[data-v-3603a346]:hover {
  opacity: 0.8;
  transform: scale(1.15);
}
.insert-indicator__btn--table[data-v-3603a346] {
  border-radius: 2px;
  font-size: 0.35rem;
}


/* 테이블 그리드 피커 (툴바 + 인디케이터 공용) */
.edit-toolbar__table-wrap[data-v-3603a346] {
  position: relative;
  display: flex;
}
.grid-picker[data-v-3603a346] {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 4px;
  background: var(--surface-color, var(--color-white));
  border: 1px solid var(--border-color);
  border-radius: 6px;
  padding: 6px;
  box-shadow: var(--shadow-md);
  z-index: 100;
  pointer-events: auto;
  white-space: nowrap;
}
.grid-picker--above[data-v-3603a346] {
  bottom: 100%;
  top: auto;
  margin-top: 0;
  margin-bottom: 4px;
}
.grid-picker__label[data-v-3603a346] {
  text-align: center;
  font-size: 0.65rem;
  color: var(--text-secondary);
  margin-bottom: 4px;
  line-height: 1;
}
.grid-picker__grid[data-v-3603a346] {
  display: grid;
  grid-template-columns: repeat(6, 14px);
  grid-template-rows: repeat(6, 14px);
  gap: 2px;
}
.grid-picker__cell[data-v-3603a346] {
  width: 14px;
  height: 14px;
  border: 1px solid var(--border-color);
  border-radius: 2px;
  background: var(--bg-primary, var(--color-white));
  cursor: pointer;
  transition: background 0.05s, border-color 0.05s;
}
.grid-picker__cell--active[data-v-3603a346] {
  background: var(--primary-color, var(--color-info));
  border-color: var(--primary-color, var(--color-info));
  opacity: 0.7;
}
.grid-picker__cell[data-v-3603a346]:hover {
  border-color: var(--primary-color, var(--color-info));
}
.fab-fade-enter-active[data-v-3603a346],
.fab-fade-leave-active[data-v-3603a346] {
  transition: opacity 0.15s, transform 0.15s;
}
.fab-fade-enter-from[data-v-3603a346],
.fab-fade-leave-to[data-v-3603a346] {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.9);
}

/* 빈 상태 */
.content-tree__empty[data-v-3603a346] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
  gap: 0.5rem;
  color: var(--text-tertiary);
}
.content-tree__empty-icon[data-v-3603a346] {
  font-size: 1.5rem;
}
.content-tree__empty p[data-v-3603a346] {
  margin: 0;
  font-size: 0.8125rem;
}

/* 로딩 */
.content-tree__loading[data-v-3603a346] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 2rem;
  color: var(--text-secondary);
  font-size: 0.8125rem;
}
.content-tree__loading-more[data-v-3603a346] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  padding: 0.75rem;
  color: var(--text-tertiary);
  font-size: 0.75rem;
}

/* 하단 페이지 정보 */
.content-tree__footer[data-v-3603a346] {
  flex-shrink: 0;
  padding: 0.375rem 0.75rem;
  border-top: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.6875rem;
  color: var(--text-tertiary);
}
.content-tree__selection-info[data-v-3603a346] {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.content-tree__footer-sep[data-v-3603a346] {
  flex-shrink: 0;
  margin: 0 0.5rem;
  color: var(--border-color);
}
.content-tree__page-info[data-v-3603a346] {
  flex-shrink: 0;
  white-space: nowrap;
}
.content-tree__body--dragging[data-v-3603a346] {
  user-select: none;
}

/* 규칙 탭 */
.content-tree__rules-panel[data-v-3603a346] {
  padding: 0 0.5rem;
  overflow: hidden;
}

/* ListBody 가 패널 높이를 꽉 채우도록 — 패널 자체가 높이 제약을 가짐 */
.content-tree__rules-panel .rules-list[data-v-3603a346] {
  height: 100%;
}
.rules-filter-bar[data-v-3603a346] {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--border-color);
  position: relative;
}
.rules-filter-select[data-v-3603a346] {
  height: 28px;
  padding: 0 0.5rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  font-size: 0.8125rem;
  background: var(--surface-color);
  color: var(--text-primary);
}
.rules-desc[data-v-3603a346] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  line-height: 1.4;
}
.rules-search-mark[data-v-3603a346] {
  background: var(--surface-warning-soft);
  border-radius: 2px;
  padding: 0 1px;
}
.rules-delete-btn[data-v-3603a346] {
  background: none;
  border: none;
  padding: 0.25rem;
  cursor: pointer;
  color: var(--text-tertiary);
  border-radius: 3px;
  font-size: 0.6875rem;
  transition: color 0.1s;
}
.rules-delete-btn[data-v-3603a346]:hover {
  color: var(--color-danger-hover);
}
.rules-actions[data-v-3603a346] {
  display: flex;
  gap: 4px;
  align-items: center;
}


/* 범위 뱃지 (관리자 페이지와 동일) */
.scope-badge[data-v-3603a346] {
  display: inline-block;
  padding: 0.0625rem 0.375rem;
  border-radius: 3px;
  font-size: 0.6875rem;
  font-weight: 500;
  background: var(--surface-info-soft);
  color: var(--color-info-hover);
}
.scope-badge--global[data-v-3603a346] { background: var(--surface-success-soft); color: var(--color-success-hover);
}
.scope-badge--industry[data-v-3603a346] { background: var(--surface-warning-soft); color: var(--color-warning-hover);
}
.scope-badge--company_industry[data-v-3603a346] { background: var(--surface-orange-soft); color: var(--color-orange);
}
.scope-badge--company_type[data-v-3603a346] { background: var(--surface-danger-soft); color: var(--color-danger-hover);
}
.scope-badge--company[data-v-3603a346] { background: var(--surface-info-soft); color: var(--color-info-hover);
}
.scope-badge--product[data-v-3603a346] { background: var(--surface-indigo-soft); color: var(--color-indigo);
}
.scope-badge--document[data-v-3603a346] { background: var(--surface-purple-soft); color: var(--color-purple);
}
.scope-target[data-v-3603a346] {
  margin-left: 0.25rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.doc-type-badge[data-v-3603a346] {
  display: inline-block;
  padding: 0.0625rem 0.375rem;
  border-radius: 3px;
  font-size: 0.6875rem;
  font-weight: 500;
  background: var(--surface-muted);
  color: var(--text-secondary);
  margin-right: 0.125rem;
}
.doc-type-badge--all[data-v-3603a346] {
  background: var(--surface-success-soft);
  color: var(--color-success-hover);
}

/* 토글 스위치 (관리자 페이지와 동일) */
.toggle-switch[data-v-3603a346] {
  position: relative;
  display: inline-block;
  width: 32px;
  height: 18px;
  cursor: pointer;
}
.toggle-switch input[data-v-3603a346] {
  opacity: 0;
  width: 0;
  height: 0;
}
.toggle-slider[data-v-3603a346] {
  position: absolute;
  inset: 0;
  background: var(--text-tertiary);
  border-radius: 18px;
  transition: background 0.2s;
}
.toggle-slider[data-v-3603a346]::before {
  content: '';
  position: absolute;
  width: 14px;
  height: 14px;
  left: 2px;
  bottom: 2px;
  background: var(--color-white);
  border-radius: 50%;
  transition: transform 0.2s;
}
.toggle-switch input:checked + .toggle-slider[data-v-3603a346] {
  background: var(--primary-color, var(--color-info-hover));
}
.toggle-switch input:checked + .toggle-slider[data-v-3603a346]::before {
  transform: translateX(14px);
}

/* 모바일 선택 모드 하단 바 */
.content-tree__selection-bar[data-v-3603a346] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  border-top: 1px solid var(--border-color);
  background: var(--primary-color, var(--color-info));
  color: var(--color-white);
  touch-action: manipulation;
}
.selection-bar__count[data-v-3603a346] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 500;
  flex: 1;
}
.selection-bar__count i[data-v-3603a346] { font-size: 0.875rem;
}
.selection-bar__btn[data-v-3603a346] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  border: none;
  background: var(--surface-active);
  color: var(--color-white);
  border-radius: 4px;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  cursor: pointer;
}
.selection-bar__btn[data-v-3603a346]:active { background: var(--surface-stripe);
}
.selection-bar__cancel[data-v-3603a346] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  background: var(--surface-active);
  color: var(--color-white);
  border-radius: 50%;
  cursor: pointer;
  font-size: 0.8125rem;
}
.selection-bar__cancel[data-v-3603a346]:active { background: var(--surface-stripe);
}

/* 편집 툴바 — 기본 (데스크톱) */
.content-tree__edit-toolbar[data-v-3603a346] {
  flex-shrink: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px;
  padding: 0.25rem 0.75rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  touch-action: manipulation;
}

/* 툴바 아이콘 글리프 — 표준화 전 크기(0.75rem)로 복원. AppButton sm 기본(≈0.89rem)은 고밀도 툴바에선 과대 */
.content-tree__edit-toolbar[data-v-3603a346] .app-btn--icon-only i {
  font-size: var(--font-xs);
}

/* 편집 툴바 외부 래퍼 — 스크롤 화살표 컨테이너 */
.content-tree__edit-toolbar-outer[data-v-3603a346] {
  position: relative;
  flex-shrink: 0;
}

/* 좌우 스크롤 화살표 — 기본은 숨김, JS가 has-left-hint/has-right-hint 클래스 부착 시 표시 */
.edit-toolbar__scroll-hint[data-v-3603a346] {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 22px;
  display: none;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border-color);
  padding: 0;
  margin: 0;
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  z-index: 3;
  box-shadow: var(--shadow-md);
}
.edit-toolbar__scroll-hint--left[data-v-3603a346] { left: 0;
}
.edit-toolbar__scroll-hint--right[data-v-3603a346] { right: 0;
}
.content-tree__edit-toolbar-outer.has-left-hint .edit-toolbar__scroll-hint--left[data-v-3603a346] { display: flex;
}
.content-tree__edit-toolbar-outer.has-right-hint .edit-toolbar__scroll-hint--right[data-v-3603a346] { display: flex;
}

/* 모바일: 한 줄 스크롤 */
@media (max-width: 768px) {
.content-tree__edit-toolbar[data-v-3603a346] {
    flex-wrap: nowrap;
    border-bottom: none;
    padding: 0.25rem 0.75rem;
    min-width: max-content;
}
.content-tree__edit-toolbar-wrapper[data-v-3603a346] {
    position: relative;
    overflow-x: auto;
    overflow-y: hidden;
    border-bottom: 1px solid var(--border-color);
    background: var(--surface-color-secondary);
    touch-action: pan-x;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}
.content-tree__edit-toolbar-wrapper[data-v-3603a346]::-webkit-scrollbar {
    display: none; /* Chrome/Safari */
}
}
.edit-toolbar__sep--table[data-v-3603a346] {
  width: 1px;
  height: 20px;
  margin: 0 6px;
  background: var(--border-color);
}
.edit-toolbar__table-group[data-v-3603a346] {
  display: flex;
  align-items: center;
  gap: 2px;
}
.edit-toolbar__btn--table[data-v-3603a346] {
  width: auto;
  padding: 0 6px;
  gap: 2px;
  font-size: 0.6875rem;
}
.edit-toolbar__btn--table small[data-v-3603a346] {
  font-size: 0.625rem;
  opacity: 0.8;
}

/* 테이블 편집 버튼 베이스 — 아이콘+단위 라벨 컴팩트 버튼 (AppButton 미적용 잔여 버튼) */
.edit-toolbar__btn[data-v-3603a346] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: none;
  background: none;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.75rem;
  border-radius: 4px;
  padding: 0;
  transition: background 0.1s, color 0.1s;
}
.edit-toolbar__btn[data-v-3603a346]:hover:not(:disabled) {
  background: var(--surface-hover);
  color: var(--text-primary);
}
.edit-toolbar__btn[data-v-3603a346]:disabled {
  opacity: 0.3;
  cursor: default;
}
.edit-toolbar__btn--with-label[data-v-3603a346] {
  width: auto;
  gap: 1px;
  padding: 0 4px;
}
.edit-toolbar__label[data-v-3603a346] {
  font-size: 0.6rem;
  line-height: 1;
}
.edit-toolbar__sep[data-v-3603a346] {
  width: 1px;
  height: 16px;
  background: var(--border-color);
  margin: 0 2px;
}

/* 협업 바 */
.content-tree__collab-bar[data-v-3603a346] {
  margin-left: auto;
}


.catalog-view-page[data-v-67443723] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--background-color);
}

/* back bar */
.back-bar[data-v-67443723] {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: var(--space-4, 16px);
  padding: var(--space-3, 12px) var(--space-6, 24px);
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
}
.back-link[data-v-67443723] {
  color: var(--text-secondary);
  text-decoration: none;
  font-size: 0.95rem;
}
.back-link[data-v-67443723]:hover { color: var(--primary-color);
}
.readonly-badge[data-v-67443723] {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 2px 10px; font-size: 0.78rem;
  border-radius: var(--radius-pill, 999px);
  background: var(--surface-color-secondary);
  color: var(--color-warning);
}
.state-msg[data-v-67443723] {
  padding: var(--space-8, 32px);
  text-align: center;
  color: var(--text-secondary);
}

/* meta editor 헤더 모방 */
.meta-header[data-v-67443723] {
  flex: 0 0 auto;
  padding: var(--space-3, 12px) var(--space-6, 24px);
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.meta-header__product-row[data-v-67443723] {
  display: flex;
  align-items: center;
  justify-content: center;        /* 메타편집기 헤더와 동일한 가운데 정렬 */
  gap: 0.375rem 0.5rem;
  flex-wrap: wrap;
}
.meta-header__product[data-v-67443723] {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-primary);
}
.meta-header__doctype[data-v-67443723] {
  display: inline-flex; align-items: center;
  font-size: 11px; color: var(--color-info);
  background: var(--surface-info-soft);
  padding: 2px 10px; border-radius: 3px;
  font-weight: 600;
}
.meta-header__details[data-v-67443723] {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-3, 12px); font-size: 0.85rem; color: var(--text-secondary);
  flex-wrap: wrap;
}
.meta-header__left[data-v-67443723] { display: inline-flex; align-items: center; gap: 6px;
}
.meta-header__favicon[data-v-67443723] { width: 16px; height: 16px; border-radius: 3px; object-fit: contain;
}
.meta-header__company[data-v-67443723] { font-weight: 600; color: var(--text-primary);
}
.meta-header__file-info[data-v-67443723] {
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 0.8rem; color: var(--text-secondary);
}

/* 추출 상태바 (TodoWorkTypeMeta 의 .extraction-status* 비주얼 그대로 — 향후 SSOT 추출 시 컴포넌트화 예정) */
.extraction-status[data-v-67443723] {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding: 0.625rem 0.75rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
}
.extraction-status__icon[data-v-67443723] {
  font-size: 0.875rem;
  color: var(--success-color);
  flex-shrink: 0;
}
.extraction-status__text[data-v-67443723] {
  font-size: 0.8125rem;
  color: var(--text-secondary);
  flex: 1;
  min-width: 0;
}
.extraction-status__text strong[data-v-67443723] {
  color: var(--text-primary);
  font-weight: 600;
}
.extraction-status__style-toggle[data-v-67443723] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
  cursor: pointer;
  margin-left: auto;
}
.extraction-status__toggle-input[data-v-67443723] { display: none;
}
.extraction-status__toggle-track[data-v-67443723] {
  position: relative;
  width: 56px; height: 20px;
  border-radius: 10px;
  background: var(--border-color);
  transition: background 0.2s;
  flex-shrink: 0;
  overflow: hidden;
}
.extraction-status__toggle-label[data-v-67443723] {
  position: absolute; top: 0; height: 100%;
  display: flex; align-items: center;
  font-size: 0.625rem; font-weight: 600;
  pointer-events: none;
  transition: opacity 0.2s;
}
.extraction-status__toggle-label--off[data-v-67443723] { left: 22px; color: var(--text-secondary); opacity: 1;
}
.extraction-status__toggle-label--on[data-v-67443723]  { left: 5px; color: var(--color-white); opacity: 0;
}
.extraction-status__toggle-thumb[data-v-67443723] {
  position: absolute; top: 2px; left: 2px;
  width: 16px; height: 16px;
  border-radius: 50%; background: var(--color-white);
  box-shadow: var(--shadow-sm);
  transition: left 0.2s;
}
.extraction-status__toggle-input:checked + .extraction-status__toggle-track[data-v-67443723] {
  background: var(--primary-color);
}
.extraction-status__toggle-input:checked + .extraction-status__toggle-track .extraction-status__toggle-thumb[data-v-67443723] { left: 38px;
}
.extraction-status__toggle-input:checked + .extraction-status__toggle-track .extraction-status__toggle-label--off[data-v-67443723] { opacity: 0;
}
.extraction-status__toggle-input:checked + .extraction-status__toggle-track .extraction-status__toggle-label--on[data-v-67443723]  { opacity: 1;
}

/* split pane */
.vertical-split-container[data-v-67443723] {
  flex: 1 1 auto;
  min-height: 0;
  position: relative;
  display: flex;
  width: 100%;
}
/* 드래그 중 PDF iframe 이벤트 가로채기 방지 — z-index 규칙은 tokens.css 의 --z-resize-overlay 주석 참고. */
.resize-overlay[data-v-67443723] {
  position: absolute;
  inset: 0;
  z-index: var(--z-resize-overlay);
  cursor: col-resize;
}
.left-pane[data-v-67443723] {
  flex: 0 0 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.pdf-iframe[data-v-67443723] {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: var(--surface-color);
}
.empty[data-v-67443723] {
  flex: 1; display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  color: var(--text-secondary);
  gap: 8px;
}
.meta-left-tabs__content[data-v-67443723] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.right-pane[data-v-67443723] {
  flex: 0 0 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.right-pane > .meta-content-tree[data-v-67443723] {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
}

/* swapped: 좌측이 우측이 되고 우측이 좌측이 됨 (CSS order 반전) */
.vertical-split-container.swapped .left-pane[data-v-67443723] { order: 3;
}
/* 스왑 시 분리대 순서 — VerticalSplitter 가 child 라 :deep() 으로 child 요소 지정 */
.vertical-split-container.swapped[data-v-67443723] .vertical-split-resizer { order: 2;
}
.vertical-split-container.swapped .right-pane[data-v-67443723] { order: 1;
}

/* 분리대 자체 스타일은 VerticalSplitter (scoped) 가 보유 */

/* ──────────────────────────────────────────────────────────────────
   모바일 레이아웃 — TodoWorkTypeMeta 의 .meta-mobile-* 패턴과 동일.
   헤더/추출상태바는 탭 위에 항상 노출, 본문은 탭으로 전환.
   ────────────────────────────────────────────────────────────────── */
.catalog-mobile-layout[data-v-67443723] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.catalog-mobile-content[data-v-67443723] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.catalog-mobile-content > .pdf-iframe[data-v-67443723],
.catalog-mobile-content > .empty[data-v-67443723] {
  flex: 1 1 auto;
  min-height: 0;
}
/* 모바일에서 헤더 컴팩트 */
.catalog-mobile-layout .meta-header[data-v-67443723] {
  padding: 0.5rem 0.75rem;
}
.catalog-mobile-layout .meta-header__product[data-v-67443723] {
  font-size: 0.9375rem;
}
.catalog-mobile-layout .meta-header__file-info[data-v-67443723] {
  display: none;
}

.sort-control[data-v-d254a71a] {
  display: inline-flex;
  align-items: center;
}

/* 필드 선택 — 세그먼트 왼쪽: AppSelect 컨트롤 박스에 세그먼트 모양만 덮어쓴다. */
.sort-control__field[data-v-d254a71a] .multi-select-control {
  border-radius: var(--radius-sm) 0 0 var(--radius-sm);
  border-right: none;
}

/* 방향 토글 — 세그먼트 오른쪽: AppButton(secondary, icon-only) 위에 모양만 덮어쓴다. */
.sort-control .sort-control__order[data-v-d254a71a] {
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

/* 세그먼트 분리선은 오른쪽 버튼의 왼쪽 border 하나뿐(왼쪽 컨트롤은 border-right: none).
   왼쪽 필드에 호버하면 그 분리선도 함께 주제색으로 바뀌어야 세그먼트가 한 덩어리로 보인다. */
.sort-control__field:hover + .sort-control__order[data-v-d254a71a] {
  border-left-color: var(--primary-color);
}

.list-view[data-v-90efa41a] {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-height: 0;
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.list-view__toolbar[data-v-90efa41a] {
  flex: 0 0 auto;
  flex-shrink: 0;
}
.list-view__controls-wrapper[data-v-90efa41a] {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.list-view__toolbar-main[data-v-90efa41a] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
}
.list-view__toolbar-left[data-v-90efa41a] {
  flex: 1 1 auto;
  min-width: 0;
}
.list-view__toolbar-right[data-v-90efa41a] {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}
.list-view__query-bar[data-v-90efa41a] {
  display: flex;
  align-items: stretch;
  gap: 0.5rem;
}
.list-view__query-main[data-v-90efa41a] {
  flex: 1 1 auto;
}
.list-view__autocomplete-wrapper[data-v-90efa41a] {
  display: flex;
  align-items: stretch;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: var(--surface-color);
  overflow: hidden;
  position: relative;
}
.list-view__autocomplete-wrapper[data-v-90efa41a]:hover {
  border-color: var(--primary-color);
}
.list-view__autocomplete-input[data-v-90efa41a] {
  flex: 1 1 0;
  min-width: 0;
  width: 0;
  padding: 0 10px;
  border: none;
  background: transparent;
  color: var(--text-primary);
  font-size: 0.75rem;
  height: 32px;
  outline: none;
}
.list-view__autocomplete-clear[data-v-90efa41a] {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0 0.5rem;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.75rem;
  height: 32px;
  box-sizing: border-box;
  border-left: 1px solid var(--border-color);
}
.list-view__autocomplete-clear[data-v-90efa41a]:hover {
  background: var(--bg-hover);
  color: var(--primary-color);
}
.list-view__autocomplete-search[data-v-90efa41a] {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0 0.75rem;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.75rem;
   /* 입력창 높이에 맞추어 버튼 크기를 고정 */
  height: 32px;
  box-sizing: border-box;
  border-left: 1px solid var(--border-color);
}
.list-view__autocomplete-search[data-v-90efa41a]:hover {
  background: var(--bg-hover);
  color: var(--primary-color);
}

/* 돋보기 / 클리어 아이콘 크기를 약간 줄여서 높이에 맞게 정렬 */
.list-view__autocomplete-clear i[data-v-90efa41a],
.list-view__autocomplete-search i[data-v-90efa41a] {
  font-size: 0.75rem;
  line-height: 1;
}
.list-view__body[data-v-90efa41a] {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  border-radius: 8px;
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  /* Firefox용 스크롤바 스타일 */
  scrollbar-width: thin;
  scrollbar-color: var(--border-color) transparent;
  position: relative;
  /* 스크롤바가 border-radius 내부에 위치하도록 */
  scrollbar-gutter: stable;
  /* 사파리에서 스크롤바가 border-radius를 덮지 않도록 */
  -webkit-overflow-scrolling: touch;
}
.list-view__body-inner[data-v-90efa41a] {
  min-height: 100%;
  padding-bottom: 1px;
}

/* Webkit 브라우저용 스크롤바 스타일 - 얇고 둥근 핸들 */
.list-view__body[data-v-90efa41a]::-webkit-scrollbar {
  width: 6px;
  height: 6px;
  -webkit-appearance: none;
  display: block;
}
.list-view__body[data-v-90efa41a]::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 0 6px 6px 0;
  -webkit-box-shadow: none;
  /* 스크롤바 트랙이 border-radius 내부에 위치하도록 margin 추가 */
  margin: 2px 0;
}
.list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 999px;
  border: 1px solid transparent;
  -webkit-box-shadow: none;
  /* 스크롤바 thumb가 border-radius 내부에 위치하도록 */
  background-clip: padding-box;
  /* 스크롤바 thumb가 border-radius 내부에 위치하도록 margin 추가 */
  margin-right: 1px;
}
.list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb:hover {
  background: var(--text-secondary);
}
.list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb:active {
  background: var(--text-secondary);
}

/* 사파리에서 스크롤바 corner 숨기기 (border-radius를 덮지 않도록) */
.list-view__body[data-v-90efa41a]::-webkit-scrollbar-corner {
  background: transparent;
  border-radius: 0 6px 0 0;
}

/* 다크 테마에서 스크롤바 더 밝게 */
html[data-theme='dark'] .list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb,
body[data-theme='dark'] .list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
}
html[data-theme='dark'] .list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb:hover,
body[data-theme='dark'] .list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}
html[data-theme='dark'] .list-view__body[data-v-90efa41a]::-webkit-scrollbar-track {
  background: transparent;
  -webkit-box-shadow: none;
  border-radius: 0 6px 6px 0;
  margin: 2px 0;
}

/* 라이트 테마에서 스크롤바 더 어둡게 (명확하게 보이도록) */
html[data-theme='light'] .list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb,
body[data-theme='light'] .list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
}
html[data-theme='light'] .list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb:hover,
body[data-theme='light'] .list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}
html[data-theme='light'] .list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb:active,
body[data-theme='light'] .list-view__body[data-v-90efa41a]::-webkit-scrollbar-thumb:active {
  background: var(--scrollbar-thumb-hover);
}
html[data-theme='light'] .list-view__body[data-v-90efa41a]::-webkit-scrollbar-track {
  background: transparent;
  -webkit-box-shadow: none;
  border-radius: 0 6px 6px 0;
  margin: 2px 0;
}
.list-view__content[data-v-90efa41a] {
  /* 결과 영역 상·하, 좌·우 여백을 동일하게 맞춘다.
     (회사정보 화면뿐만 아니라 모든 리스트 화면에서 공통 적용) */
  padding: 1rem;
}
.list-view__state[data-v-90efa41a] {
  min-height: 160px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1.5rem 1rem;
  color: var(--text-secondary);
  text-align: center;
}
.list-view__spinner[data-v-90efa41a] {
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  border: 2px solid transparent;
  border-top-color: var(--primary-color);
  border-right-color: var(--primary-color);
  animation: list-view-spin-90efa41a 0.8s linear infinite;
}
.list-view__state-text[data-v-90efa41a] {
  font-size: 0.875rem;
}

/* 무한 스크롤 시, 기존 데이터는 그대로 유지하면서
   하단에만 잠깐 표시되는 로딩 인디케이터 영역 */
.list-view__infinite-loading[data-v-90efa41a] {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0;
}
.list-view__infinite-loading--top[data-v-90efa41a] {
  margin-bottom: 0.5rem;
}
.list-view__infinite-loading--bottom[data-v-90efa41a] {
  margin-top: 0.5rem;
}
.list-view__pagination[data-v-90efa41a] {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.875rem;
  color: var(--text-secondary);
}
.list-view__pagination[data-v-90efa41a]:has(.list-view__pagination-single) {
  justify-content: center;
}
.list-view__pagination--compact[data-v-90efa41a] {
  gap: 0;
}
.list-view__pagination-left[data-v-90efa41a],
.list-view__pagination-right[data-v-90efa41a] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.list-view__pagination-single[data-v-90efa41a] {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.list-view__icon-btn[data-v-90efa41a] {
  border: none;
  background: transparent;
  padding: 0 0.5rem;
  cursor: pointer;
  color: var(--text-secondary);
  font-size: 0.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}
.list-view__icon-btn[data-v-90efa41a]:hover {
  background: var(--bg-hover);
  color: var(--primary-color);
}
.list-view__detail-filter-control[data-v-90efa41a] {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.list-view__detail-filter-menu[data-v-90efa41a] {
  position: absolute;
  top: 100%;
  left: 0;
  right: auto;
  margin-top: 2px;
  min-width: 150px;
  max-height: 300px;
  overflow-y: auto;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 4px;
  z-index: 30;
  box-shadow: var(--shadow-lg);
  list-style: none;
  padding: 4px 0;
}
.list-view__detail-filter-menu--align-right[data-v-90efa41a] {
  left: auto;
  right: 0;
}
.list-view__detail-filter-menu[data-v-90efa41a] {
  scrollbar-width: thin;
  scrollbar-color: var(--border-color) transparent;
}
.list-view__detail-filter-menu[data-v-90efa41a]::-webkit-scrollbar {
  width: 6px;
}
.list-view__detail-filter-menu[data-v-90efa41a]::-webkit-scrollbar-track {
  background: transparent;
}
.list-view__detail-filter-menu[data-v-90efa41a]::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 999px;
}
.list-view__detail-filter-menu-item[data-v-90efa41a] {
  padding: 6px 12px;
  font-size: 0.75rem;
  cursor: pointer;
  white-space: nowrap;
  color: var(--text-primary);
  transition: background-color 0.15s ease, color 0.15s ease;
}
.list-view__detail-filter-menu-item[data-v-90efa41a]:hover:not(.list-view__detail-filter-menu-item--disabled):not(.list-view__detail-filter-menu-item--separator) {
  background: var(--surface-primary-soft);
  color: var(--primary-color);
}
.list-view__detail-filter-menu-item--disabled[data-v-90efa41a] {
  opacity: 0.5;
  cursor: not-allowed;
  color: var(--text-secondary);
}
.list-view__detail-filter-menu-item--separator[data-v-90efa41a] {
  padding: 4px 0;
  cursor: default;
}
.list-view__detail-filter-menu-item--separator hr[data-v-90efa41a] {
  margin: 0;
  border: none;
  border-top: 1px solid var(--border-color);
}
.list-view__detail-filter-menu-item--clear[data-v-90efa41a] {
  color: var(--text-secondary);
  font-weight: 500;
}
.list-view__detail-filters[data-v-90efa41a] {
  /* 항상 키워드/상세/정렬 아래 새로운 라인에서 시작하도록 전체 너비 차지 */
  flex: 0 0 100%;
  margin-top: 0;
  padding-top: 0.5rem;
  border-top: 1px solid var(--border-color);
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: flex-start;
}
.list-view__sort-control[data-v-90efa41a] {
  display: inline-flex;
  align-items: center;
  position: relative;
}
@media (max-width: 768px) {
.list-view[data-v-90efa41a] {
    gap: 0.25rem;
}

  /* iOS 자동 확대 방지는 JS(viewport 동적 변경)로 처리하므로 font-size 오버라이드 제거 */
.list-view__toolbar-main[data-v-90efa41a] {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
}
.list-view__query-bar[data-v-90efa41a] {
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
}
.list-view__toolbar-right[data-v-90efa41a] {
    justify-content: center;
    gap: 0.4rem;
}
.list-view__sort-control[data-v-90efa41a] {
    width: auto;
    justify-content: flex-end;
    flex-wrap: nowrap;
    row-gap: 0;
    flex: 0 0 auto;
}
}
.list-view__page-info[data-v-90efa41a] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.list-view__page-current[data-v-90efa41a] {
  font-weight: 600;
}
.list-view__page-total[data-v-90efa41a] {
  opacity: 0.8;
}
.list-view__page-jump[data-v-90efa41a] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.list-view__page-input[data-v-90efa41a] {
  width: 3rem;
  padding: 0.15rem 0.4rem;
  font-size: 0.8rem;
  text-align: center;
  height: var(--control-height-sm);
  box-sizing: border-box;
}
.list-view__page-separator[data-v-90efa41a] {
  opacity: 0.8;
}
.list-view__page-size-label[data-v-90efa41a] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.list-view__page-size-select[data-v-90efa41a] {
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.8rem;
}
.list-view__total[data-v-90efa41a] {
  white-space: nowrap;
}
.list-view__total-toggle[data-v-90efa41a] {
  border: none;
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.875rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.list-view__total-main[data-v-90efa41a] {
  white-space: nowrap;
}
.list-view__total-summary[data-v-90efa41a] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.list-view__total-summary-item[data-v-90efa41a] {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  font-size: 0.8rem;
}
@keyframes list-view-spin-90efa41a {
0% {
    transform: rotate(0deg);
}
100% {
    transform: rotate(360deg);
}
}
@media (max-width: 768px) {
.list-view__toolbar-main[data-v-90efa41a] {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
}
.list-view__query-bar[data-v-90efa41a] {
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
}
.list-view__toolbar-right[data-v-90efa41a] {
    justify-content: center;
    gap: 0.4rem;
}
.list-view__sort-control[data-v-90efa41a] {
    width: auto;
    justify-content: flex-end;
    flex-wrap: nowrap;
    row-gap: 0;
    flex: 0 0 auto;
}
.list-view__controls-wrapper--mobile[data-v-90efa41a] {
    transition: max-height 0.25s ease, opacity 0.25s ease;
}
.list-view__controls-wrapper--mobile[data-v-90efa41a]:not(.list-view__controls-wrapper--collapsed) {
    max-height: 800px;
    opacity: 1;
}
.list-view__controls-wrapper--mobile.list-view__controls-wrapper--collapsed[data-v-90efa41a] {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
}
.list-view__total-toggle[data-v-90efa41a] {
    cursor: pointer;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    justify-content: center;
    width: 100%;
}
.list-view__pagination-left[data-v-90efa41a] {
    transition: max-height 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
    transform-origin: top;
}
.list-view__pagination-left--collapsed[data-v-90efa41a] {
    max-height: 0;
    opacity: 0;
    transform: translateY(-8px);
    overflow: hidden;
}
.list-view__pagination[data-v-90efa41a] {
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.list-view__pagination-left[data-v-90efa41a],
  .list-view__pagination-right[data-v-90efa41a] {
    justify-content: center;
    width: 100%;
}
.list-view__pagination-single[data-v-90efa41a] {
    justify-content: center;
    width: 100%;
}

  /* 모바일에서는 페이지 네비게이션이 먼저, 총건수 메시지가 그 아래에 오도록 순서 조정 */
.list-view__pagination-left[data-v-90efa41a] {
    order: 1;
}
.list-view__pagination-right[data-v-90efa41a] {
    order: 2;
}
.list-view__content[data-v-90efa41a] {
    padding: 0.5rem;
}
.list-view__state[data-v-90efa41a] {
    padding: 1rem 0.5rem;
}
}
@media (max-width: 480px) {
.list-view__content[data-v-90efa41a] {
    padding: 0.25rem;
}
.list-view__state[data-v-90efa41a] {
    padding: 0.75rem 0.25rem;
}
}

.scraper-request-form-group[data-v-1944c368] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.scraper-request-form-group label[data-v-1944c368] {
  display: block;
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
}
.scraper-request-textarea[data-v-1944c368] {
  width: 100%;
  min-height: 100px;
}

.detail-filter-field[data-v-fc401212] {
  display: flex;
  align-items: stretch;
  /* 같은 줄 컨트롤(검색창·정렬)과 높이 일치 — 디자인 시스템 표준 32px */
  min-height: var(--control-height-md);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--surface-color);
  transition: border-color 0.15s;
}

/* 호버/포커스 강조는 그룹 바깥 테두리에만 준다 (내부 구분선은 그대로) */
.detail-filter-field[data-v-fc401212]:hover,
.detail-filter-field[data-v-fc401212]:focus-within {
  border-color: var(--primary-color);
}
.detail-filter-field__label[data-v-fc401212] {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  padding: 0 var(--space-2);
  border-right: 1px solid var(--border-color);
}
.detail-filter-field__label label[data-v-fc401212] {
  margin: 0;
  font-size: var(--font-xs);
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
}
.detail-filter-field__control[data-v-fc401212] {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
}

/* 슬롯의 MultiSelect(AppSelect)는 자체 테두리를 벗고 그룹에 녹는다 */
.detail-filter-field__control[data-v-fc401212] .multi-select-wrapper {
  width: 100% !important;
  flex: 1 1 auto;
  min-width: 0;
}
.detail-filter-field__control[data-v-fc401212] .multi-select-control {
  border: none !important;
  border-radius: 0 !important;
  height: 100% !important;
  width: 100%;
  background: transparent;
}
/* 펼침 시 컨트롤 자체 그림자는 제거 — 그룹 테두리로 충분 */
.detail-filter-field__control[data-v-fc401212] .multi-select-control.open {
  box-shadow: none !important;
}

/* 슬롯에 DateRangePicker 를 넣는 경우(상품 목록 등)도 동일하게 그룹에 녹인다 */
.detail-filter-field__control[data-v-fc401212] .date-range-wrapper {
  width: 100%;
}
.detail-filter-field__control[data-v-fc401212] .date-range-control {
  border: none !important;
  border-radius: 0 !important;
  height: 100% !important;
  width: 100%;
  background: transparent;
}
.detail-filter-field__remove[data-v-fc401212] {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  padding: 0 var(--space-1);
  border-left: 1px solid var(--border-color);
}

.bulk-progress-info[data-v-44017251] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}
.bulk-progress-icon[data-v-44017251] {
  width: 16px;
  height: 16px;
  object-fit: contain;
  flex-shrink: 0;
}
.bulk-progress-name[data-v-44017251] {
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  text-align: left;
}
.bulk-progress-bar-wrapper[data-v-44017251] {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.bulk-progress-bar-container[data-v-44017251] {
  flex: 1;
  height: 16px;
  background: var(--surface-muted);
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--border-color);
}
.bulk-progress-bar[data-v-44017251] {
  height: 100%;
  background: var(--primary-color);
  width: 0%;
  transition: width var(--transition-slow);
  border-radius: var(--radius-md);
}
.bulk-progress-percentage[data-v-44017251] {
  font-size: var(--font-xs);
  color: var(--text-primary);
  font-weight: var(--font-weight-medium);
  min-width: 40px;
  text-align: right;
}

.schedule-field[data-v-2d14c0bd] {
  margin-bottom: var(--space-3);
}
.schedule-field[data-v-2d14c0bd]:last-child {
  margin-bottom: 0;
}
.schedule-field label[data-v-2d14c0bd] {
  display: block;
  margin-bottom: var(--space-2);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
}
.schedule-input[data-v-2d14c0bd] {
  width: 100%;
}
.schedule-select-wrapper[data-v-2d14c0bd] {
  display: block;
}
.schedule-time-wrapper[data-v-2d14c0bd] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.schedule-time-input[data-v-2d14c0bd] {
  flex: 1;
  text-align: center;
}
.schedule-time-separator[data-v-2d14c0bd] {
  font-size: var(--font-sm);
  color: var(--text-secondary);
}
.schedule-help[data-v-2d14c0bd] {
  margin-top: var(--space-1);
  font-size: var(--font-xs);
  color: var(--text-secondary);
}
.schedule-separator[data-v-2d14c0bd] {
  height: 1px;
  margin: var(--space-2) 0 var(--space-3);
  background: var(--border-color);
}

.company-card[data-v-90932538] {
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 12px;
  background: var(--surface-color);
  min-width: 0;
  width: 100%;
  position: relative;
  cursor: default;
  /* 카드 전체 기본 줄간격을 약간 촘촘하게 조정 */
  line-height: 1.4;
}
.company-card .company-body[data-v-90932538] {
  display: flex !important;
  align-items: flex-start !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
  flex-direction: row !important;
}
.company-card .company-body-left[data-v-90932538] {
  flex: 1 1 200px !important;
  min-width: 0 !important;
  flex-shrink: 1 !important;
  flex-grow: 1 !important;
  max-width: none !important;
  width: auto !important;
  /* flex-basis를 고정값으로 설정하여 두 영역 합이 컨테이너보다 크면 wrap */
}
.company-card .company-body-right[data-v-90932538] {
  flex: 0 0 160px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  gap: 0 !important;
  text-align: right !important;
  flex-shrink: 0 !important;
  flex-grow: 0 !important;
  max-width: none !important;
  width: auto !important;
  min-width: 160px !important;
  /* 밑으로 떨어졌을 때 오른쪽 끝에 붙도록 */
  margin-left: auto !important;
}
.company-card.company-card--status-completed[data-v-90932538] {
  background: var(--company-card-success-bg);
  border-color: var(--company-card-success-border);
}
.company-card.company-card--status-failed[data-v-90932538] {
  background: var(--company-card-failed-bg);
  border-color: var(--company-card-failed-border);
}

/* 비활성 회사는 상태 배경색/테두리 적용 안 함 (기존 HTML 버전과 동일 룰) */
.company-card.company-card--status-completed[data-v-90932538]:has(.tag-inactive),
.company-card.company-card--status-failed[data-v-90932538]:has(.tag-inactive) {
  background: var(--surface-color);
  border-color: var(--border-color);
}
.company-card[data-v-90932538]:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
  border-color: var(--primary-color);
}

/* 실패 카드(활성/비활성 모두)에 대해서도 호버 시 테두리 색이 확실히 보이도록 보강 */
.company-card.company-card--status-failed[data-v-90932538]:hover,
.company-card.company-card--status-failed[data-v-90932538]:has(.tag-inactive):hover {
  border-color: var(--primary-color);
}
.company-header[data-v-90932538] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* 상단 헤더(이름/버튼 줄)와 아래 내용 줄 사이 간격을 조금 줄임 */
  margin-bottom: 0.5rem;
}
.company-header-left[data-v-90932538] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1 1 auto;
  min-width: 0;
}
.company-checkbox[data-v-90932538] {
  flex-shrink: 0;
}
.company-favicon[data-v-90932538] {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.company-header-right[data-v-90932538] {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.company-toolbar[data-v-90932538] {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  margin-left: 2px;
}
.history-btn[data-v-90932538],
.immediate-run-btn[data-v-90932538],
.schedule-edit-btn[data-v-90932538],
.scraper-request-btn[data-v-90932538] {
  font-size: 14px;
}
.tag[data-v-90932538] {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  background: var(--tag-bg, var(--surface-muted));
  color: var(--tag-fg, var(--text-secondary));
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}
.tag--readonly[data-v-90932538] {
  cursor: text;
}
.tag-active[data-v-90932538] {
  background: var(--surface-success-soft);
  color: var(--color-success-hover);
  border: 1px solid rgba(var(--primary-rgb), 0.35);
  animation: pulse-active-90932538 0.6s ease-in-out;
}
.tag-inactive[data-v-90932538] {
  opacity: 0.8;
  animation: pulse-inactive-90932538 0.6s ease-in-out;
}
@keyframes pulse-active-90932538 {
0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 var(--surface-success-soft);
}
50% {
    transform: scale(1.05);
    box-shadow: 0 0 0 4px transparent;
}
100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 transparent;
}
}
@keyframes pulse-inactive-90932538 {
0% {
    transform: scale(1);
    opacity: 0.8;
}
50% {
    transform: scale(0.95);
    opacity: 0.6;
}
100% {
    transform: scale(1);
    opacity: 0.8;
}
}

/* 다크 테마에서 활성/비활성 태그 스타일 (기존 HTML 버전과 유사하게) */
html[data-theme="dark"],body[data-theme="dark"] {
  background: var(--surface-muted);
  color: var(--text-secondary);
}
html[data-theme="dark"],body[data-theme="dark"] {
  background: var(--surface-success-soft);
  color: var(--color-success);
  border-color: rgba(var(--color-success-rgb), 0.45);
}

/* 다크 테마에서 비활성 태그 배경색 (더 잘 보이도록) */
html[data-theme="dark"],body[data-theme="dark"] {
  background: var(--surface-active);
  color: var(--text-secondary);
}
.company-body-right-item[data-v-90932538] {
  white-space: nowrap;
  line-height: 1.4;
  margin-bottom: 1px;
}
.company-body-right-item[data-v-90932538]:last-child {
  margin-bottom: 0;
}
.company-body-right-header[data-v-90932538] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-bottom: 0.125rem;
  line-height: 1.5;
}
.company-header-row[data-v-90932538] {
  margin-bottom: 0.75rem;
  font-size: inherit;
  align-items: center;
}
.company-header-row .left[data-v-90932538] {
  font-size: inherit;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.company-header-row strong[data-v-90932538] {
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.5;
}
.company-row[data-v-90932538] {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 8px;
  /* 각 정보 행 사이 간격을 살짝 줄여 카드 높이를 압축 */
  margin-bottom: 6px;
  font-size: 12px;
}
.company-row[data-v-90932538]:last-child {
  margin-bottom: 0;
}
.company-row .left[data-v-90932538] {
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.company-row .right[data-v-90932538] {
  flex: 0 0 auto;
  text-align: right;
  white-space: nowrap;
}
.muted[data-v-90932538] {
  color: var(--text-secondary);
}
.schedule-text-content[data-v-90932538] {
  font-size: 12px;
}
.schedule-text-clickable[data-v-90932538] {
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.schedule-text-clickable[data-v-90932538]:hover {
  opacity: 0.8;
}
.schedule-edit-icon[data-v-90932538] {
  cursor: pointer;
  font-size: 0.875rem;
}
.last-result-label[data-v-90932538] {
  font-size: 12px;
  font-weight: 500;
  color: var(--color-info);
}
.last-result-clickable[data-v-90932538] {
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.last-result-clickable[data-v-90932538]:hover {
  opacity: 0.8;
}
.last-result-failed[data-v-90932538] {
  color: var(--color-danger);
}

/* 다크 테마 */
html[data-theme="dark"],body[data-theme="dark"] {
  color: var(--color-info);
}
html[data-theme="dark"],body[data-theme="dark"] {
  color: var(--color-danger);
}
.last-session-time[data-v-90932538] {
  color: var(--text-secondary);
  font-size: 12px;
}
.product-count-text[data-v-90932538] {
  font-size: 12px;
  white-space: nowrap;
}
.product-count-text.empty[data-v-90932538] {
  color: var(--text-secondary);
  font-style: italic;
}
.product-count-link[data-v-90932538],
.document-count-link[data-v-90932538] {
  color: var(--primary-color);
  text-decoration: none;
}
.product-count-link[data-v-90932538]:hover,
.document-count-link[data-v-90932538]:hover {
  text-decoration: underline;
}
.next-run-label[data-v-90932538] {
  color: var(--text-secondary);
  font-size: 12px;
}
.next-run-text[data-v-90932538] {
  color: var(--text-secondary);
  font-size: 12px;
}

/* 크롤링 진행 상태 (기존 HTML companies.css와 동일한 톤) */
.crawling-progress-row[data-v-90932538] {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--border-color);
}
.crawling-progress-wrapper[data-v-90932538] {
  width: 100%;
}
.crawling-progress-label[data-v-90932538] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
  font-size: 11px;
  color: var(--text-secondary);
}
.crawling-task-message[data-v-90932538] {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-right: 8px;
}
.crawling-progress-percent[data-v-90932538] {
  font-weight: 600;
  color: var(--primary-color);
  flex-shrink: 0;
}
.crawling-progress-controls[data-v-90932538] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.crawling-progress-bar[data-v-90932538] {
  flex: 1;
  height: 6px;
  background: var(--surface-color-secondary);
  border-radius: 3px;
  overflow: hidden;
}
.crawling-progress-fill[data-v-90932538] {
  height: 100%;
  background: var(--primary-color);
}
.crawling-cancel-btn[data-v-90932538] {
  flex-shrink: 0;
}


/* 두 영역이 겹치면 자동으로 밑으로 떨어지도록 처리 (flex-wrap: wrap이 기본이므로 별도 미디어 쿼리 불필요) */
@media (max-width: 480px) {
.company-header[data-v-90932538] {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
}
.company-header-right[data-v-90932538] {
    width: 100%;
    justify-content: flex-start;
    gap: 0.5rem;
}
.product-count-text[data-v-90932538] {
    white-space: normal;
}
}
/* 하일라이팅 스타일은 전역 스타일(search-highlight.css)에서 관리 */


.company-list-view-wrapper[data-v-0041ba5e] {
  display: flex;
  flex-direction: column;
  height: 100%;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  gap: 0;
}
.company-list-view-content[data-v-0041ba5e] {
  display: flex;
  flex-direction: row;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  gap: 0.75rem;
  align-items: stretch;
}
.company-list-view-wrapper--bulk-mode .company-list-view-main[data-v-0041ba5e] {
  flex: 1 1 auto;
  min-width: 0;
}
.company-list-view-main[data-v-0041ba5e] {
  display: flex;
  flex-direction: column;
  height: 100%;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}

/* 일괄편집 모드일 때 ListView의 pagination은 유지 */
.company-list-view-wrapper[data-v-0041ba5e] .list-view {
  height: 100%;
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
}

/* 일괄편집 모드일 때 ListView의 pagination은 표시 유지 */

/* 일괄편집 모드일 때 ListView의 전체 구조 유지 */
.company-list-view-wrapper--bulk-mode[data-v-0041ba5e] .list-view {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  height: 100%;
}
.company-list-view-wrapper--bulk-mode[data-v-0041ba5e] .list-view__toolbar {
  flex: 0 0 auto;
  flex-shrink: 0;
}
.company-list-view-wrapper--bulk-mode[data-v-0041ba5e] .list-view__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

/* 일괄편집 모드일 때 ListView의 toolbar + body 영역 높이 계산 */
.company-list-view-wrapper--bulk-mode .company-list-view-main[data-v-0041ba5e] {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.company-list-view-wrapper--bulk-mode .company-list-view-main[data-v-0041ba5e] .list-view {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.company-list-view-wrapper--bulk-mode .company-list-view-main[data-v-0041ba5e] .list-view__toolbar,
.company-list-view-wrapper--bulk-mode .company-list-view-main[data-v-0041ba5e] .list-view__body {
  flex-shrink: 0;
}
.company-list-view-wrapper--bulk-mode .company-list-view-main[data-v-0041ba5e] .list-view__body {
  flex: 1 1 auto;
  min-height: 0;
}
.company-list-view-wrapper--bulk-mode[data-v-0041ba5e] .list-view__pagination {
  flex: 0 0 auto;
  flex-shrink: 0;
  margin-top: 0;
  position: relative;
  z-index: 10;
}

/* 추가 상세 필터 그룹은 공통 컴포넌트 DetailFilterField 로 이관 */
.company-grid[data-v-0041ba5e] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
  gap: 1rem;
}
@media (max-width: 600px) {
.company-grid[data-v-0041ba5e] {
    grid-template-columns: 1fr;
}
}
.company-page__placeholder[data-v-0041ba5e] {
  margin: 0;
  padding: 1.5rem 0.5rem;
  font-size: 0.9rem;
  color: var(--text-secondary);
  text-align: center;
  line-height: 1.6;
}

/* 스케줄 편집 모달 (기존 HTML companies.css 스케줄 모달 스타일과 톤을 맞춤) */
.schedule-modal-overlay[data-v-0041ba5e] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}
.schedule-modal[data-v-0041ba5e] {
  width: 100%;
  max-width: 340px;
  margin: 0 1rem;
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
  padding: 0;
}
.schedule-modal__header[data-v-0041ba5e] {
  padding: 1rem 1.25rem 0.5rem;
  border-bottom: 1px solid var(--border-subtle);
}
.schedule-modal__title[data-v-0041ba5e] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.schedule-modal__body[data-v-0041ba5e] {
  padding: 0.75rem 1.25rem 1rem;
}
.schedule-field[data-v-0041ba5e] {
  margin-bottom: 12px;
}
.schedule-field[data-v-0041ba5e]:last-child {
  margin-bottom: 0;
}
.schedule-field label[data-v-0041ba5e] {
  display: block;
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-secondary);
}
.schedule-input[data-v-0041ba5e] {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  font-size: 13px;
  background: var(--surface-color);
  color: var(--text-primary);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.schedule-select-wrapper[data-v-0041ba5e] {
  position: relative;
  display: block;
}
.schedule-input--select[data-v-0041ba5e] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 28px;
  background-image: none;
}
.schedule-select-wrapper[data-v-0041ba5e]::after {
  content: '';
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 6px solid var(--text-secondary);
  pointer-events: none;
}
.schedule-input[data-v-0041ba5e]:focus {
  outline: none;
  border-color: var(--primary-color) !important;
  box-shadow: none;
}
.schedule-time-wrapper[data-v-0041ba5e] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.schedule-time-input[data-v-0041ba5e] {
  flex: 1;
  padding: 8px 12px;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  font-size: 13px;
  background: var(--surface-color);
  color: var(--text-primary);
  text-align: center;
  appearance: textfield;
  -moz-appearance: textfield;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.schedule-time-input[data-v-0041ba5e]::-webkit-outer-spin-button,
.schedule-time-input[data-v-0041ba5e]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.schedule-time-input[data-v-0041ba5e]:focus {
  outline: none;
  border-color: var(--primary-color) !important;
  box-shadow: none;
}
.schedule-time-separator[data-v-0041ba5e] {
  font-size: 13px;
  color: var(--text-secondary);
}
.schedule-help[data-v-0041ba5e] {
  margin-top: 4px;
  font-size: 11px;
  color: var(--text-secondary);
}
.schedule-separator[data-v-0041ba5e] {
  height: 1px;
  margin: 8px 0 12px;
  background: var(--border-color);
}
.schedule-modal__footer[data-v-0041ba5e] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 0.75rem 1.25rem 1rem;
  border-top: 1px solid var(--border-subtle);
}
.schedule-modal__footer .btn[data-v-0041ba5e] {
  min-width: 80px;
  padding: 0.4rem 0.9rem;
  border-radius: 6px;
  border: 1px solid transparent;
  font-size: 0.85rem;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s ease;
  background: var(--surface-muted);
  color: var(--text-secondary);
  border-color: var(--border-color);
}
.schedule-modal__footer .btn[data-v-0041ba5e]:hover {
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  border-color: var(--border-color);
}
.schedule-modal__footer .btn.btn-primary[data-v-0041ba5e] {
  background: var(--primary-color);
  color: var(--color-white);
  border-color: transparent;
}
.schedule-modal__footer .btn.btn-primary[data-v-0041ba5e]:hover {
  filter: brightness(1.05);
}

/* 다크 테마 보정은 ConfirmDialog와 톤이 같도록 기본 색상만 사용하므로 별도 분기 불필요 */

/* 이력 보기 모달 */
.history-modal-overlay[data-v-0041ba5e] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}
.history-modal[data-v-0041ba5e] {
  width: 100%;
  max-width: 340px;
  margin: 0 1rem;
  max-height: 80vh;
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
  padding: 0;
}
.history-modal__header[data-v-0041ba5e] {
  padding: 1rem 1.25rem 0.5rem;
  border-bottom: 1px solid var(--border-subtle);
}
.history-modal__title[data-v-0041ba5e] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.history-modal__body[data-v-0041ba5e] {
  flex: 1 1 auto;
  min-height: 0;
  margin-bottom: 12px;
  padding: 0.75rem 1.25rem 1rem;
  overflow-y: auto;
  /* 기본 스크롤바가 너무 두껍게 보이지 않도록 다듬기 */
  scrollbar-width: thin; /* Firefox */
  scrollbar-color: var(--scrollbar-thumb) transparent;
}

/* WebKit 기반 브라우저용 커스텀 스크롤바 */
.history-modal__body[data-v-0041ba5e]::-webkit-scrollbar {
  width: 6px;
}
.history-modal__body[data-v-0041ba5e]::-webkit-scrollbar-track {
  background: transparent;
}
.history-modal__body[data-v-0041ba5e]::-webkit-scrollbar-thumb {
  background-color: var(--scrollbar-thumb);
  border-radius: 999px;
}
.history-modal__body[data-v-0041ba5e]::-webkit-scrollbar-thumb:hover {
  background-color: var(--scrollbar-thumb-hover);
}
.history-loading[data-v-0041ba5e],
.history-empty[data-v-0041ba5e] {
  font-size: 13px;
  color: var(--text-secondary);
  text-align: center;
  padding: 16px 4px;
}
.history-list[data-v-0041ba5e] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.history-item[data-v-0041ba5e] {
  border: 1px solid var(--border-color);
  border-radius: 6px;
  padding: 8px 10px;
  background: var(--surface-color);
}
.history-item-header[data-v-0041ba5e] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}
.history-status[data-v-0041ba5e] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 8px;
  font-size: 11px;
  border-radius: 999px;
  font-weight: 500;
}
.history-status-completed[data-v-0041ba5e] {
  background: var(--surface-success-soft);
  color: var(--color-success-hover);
}
.history-status-failed[data-v-0041ba5e] {
  background: var(--surface-danger-soft);
  color: var(--color-danger-hover);
}
.history-status-running[data-v-0041ba5e] {
  background: var(--surface-info-soft);
  color: var(--color-info-hover);
}
.history-status-pending[data-v-0041ba5e] {
  background: var(--border-subtle);
  color: var(--text-tertiary);
}
.history-status-cancelled[data-v-0041ba5e] {
  background: var(--border-subtle);
  color: var(--text-tertiary);
}
.history-time[data-v-0041ba5e] {
  font-size: 12px;
  color: var(--text-secondary);
}
.history-item-body[data-v-0041ba5e] {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.history-stat[data-v-0041ba5e] {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
}
.history-stat-label[data-v-0041ba5e] {
  color: var(--text-secondary);
}
.history-stat-value[data-v-0041ba5e] {
  color: var(--text-primary);
  font-weight: 500;
}
.history-delta[data-v-0041ba5e] {
  color: var(--color-success-hover);
  font-size: 11px;
  margin-right: 4px;
}
.history-error[data-v-0041ba5e] {
  margin-top: 4px;
  font-size: 12px;
  color: var(--color-danger-hover);
}
.history-error-label[data-v-0041ba5e] {
  font-weight: 600;
  margin-right: 4px;
}
.history-modal__footer[data-v-0041ba5e] {
  display: flex;
  justify-content: flex-end;
  padding: 0.75rem 1.25rem 1rem;
  border-top: 1px solid var(--border-subtle);
}
html[data-theme='dark'] .history-modal[data-v-0041ba5e],
body[data-theme='dark'] .history-modal[data-v-0041ba5e] {
  background: var(--surface-muted);
}
html[data-theme='dark'] .schedule-select-wrapper[data-v-0041ba5e]::after,
body[data-theme='dark'] .schedule-select-wrapper[data-v-0041ba5e]::after {
  border-top-color: var(--text-secondary);
}

/* 일괄편집 패널 */
.company-bulk-panel[data-v-0041ba5e] {
  flex: 0 0 auto;
  /* TODO 일괄설정 패널과 동일한 너비 계산(최소/최대 범위) */
  min-width: 220px;
  max-width: 260px;
  display: flex;
  flex-direction: column;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  overflow: hidden;
  align-self: stretch;
  height: 100%;
  max-height: 100%;
  position: sticky;
  top: 0;
  z-index: 1;
  transition: all 0.3s ease;
  color: var(--text-primary);
  /* 헤더, 바디, 푸터 구조를 위한 flex 설정 */
  min-height: 0;
}
.company-bulk-panel__header[data-v-0041ba5e] {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 1rem 1.25rem 0.5rem;
  border-bottom: 1px solid var(--border-subtle);
  background: var(--surface-color);
  flex-shrink: 0;
}
.company-bulk-panel__title[data-v-0041ba5e] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.company-bulk-panel__section[data-v-0041ba5e] {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0.75rem 1.25rem;
  background: var(--surface-color);
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* 일괄편집 패널 스크롤바는 검색 결과(ListView)와 동일한 스타일을 사용한다 */
.company-bulk-panel__section[data-v-0041ba5e] {
  /* Firefox용 스크롤바 스타일 */
  scrollbar-width: thin;
  scrollbar-color: var(--border-color) transparent;
}

/* Webkit 브라우저용 스크롤바 스타일 - 얇고 둥근 핸들 */
.company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar {
  width: 8px;
  height: 8px;
  -webkit-appearance: none;
  display: block;
}
.company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 5px;
  -webkit-box-shadow: none;
}
.company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 999px;
  border: 2px solid transparent;
  -webkit-box-shadow: none;
}
.company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-thumb:hover {
  background: var(--text-secondary);
}
.company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-thumb:active {
  background: var(--text-secondary);
}

/* 다크 테마에서 스크롤바 더 밝게 (ListView와 동일한 톤 유지) */
html[data-theme='dark'] .company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-thumb,
body[data-theme='dark'] .company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
}
html[data-theme='dark'] .company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-thumb:hover,
body[data-theme='dark'] .company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}
html[data-theme='dark'] .company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-track,
body[data-theme='dark'] .company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-track {
  background: var(--surface-color);
  -webkit-box-shadow: inset 0 0 2px var(--surface-stripe);
}

/* 라이트 테마에서 스크롤바 더 어둡게 (ListView와 동일한 톤 유지) */
html[data-theme='light'] .company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-thumb,
body[data-theme='light'] .company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
}
html[data-theme='light'] .company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-thumb:hover,
body[data-theme='light'] .company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}
html[data-theme='light'] .company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-track,
body[data-theme='light'] .company-bulk-panel__section[data-v-0041ba5e]::-webkit-scrollbar-track {
  background: var(--surface-color);
  -webkit-box-shadow: inset 0 0 2px var(--surface-stripe);
}
.company-bulk-panel__group[data-v-0041ba5e] {
  margin-bottom: 0;
}
.company-bulk-panel__group-title[data-v-0041ba5e] {
  margin: 0 0 0.5rem 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
}
.company-bulk-panel__selection-controls[data-v-0041ba5e] {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.company-bulk-panel__btn--with-icon[data-v-0041ba5e] {
  /* layout kept — icon left of label via AppButton's default gap */
}
.company-bulk-panel__selection-count[data-v-0041ba5e] {
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-top: 0.5rem;
}
.company-bulk-panel__divider[data-v-0041ba5e] {
  height: 1px;
  background: var(--border-color);
  /* 첫 액션(스케줄 설정) 버튼이 바로 아래에 와서 답답해 보이지 않도록 하단 여백만 조금 더 준다 */
  margin: 0.75rem 0 1rem;
  width: 100%;
}
.company-bulk-panel__spacer[data-v-0041ba5e] {
  height: 0;
  margin: 0.75rem 0;
  width: 100%;
}
.company-bulk-panel__select-all-results[data-v-0041ba5e] {
  margin-top: 0.5rem;
}
.company-bulk-panel__checkbox-label[data-v-0041ba5e] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--text-primary);
  cursor: pointer;
  user-select: none;
}
.company-bulk-panel__count-value[data-v-0041ba5e] {
  font-weight: 600;
  color: var(--primary-color);
}
.company-bulk-panel__separator[data-v-0041ba5e] {
  height: 1px;
  margin: 0.75rem 0;
  background: var(--border-color);
}
.company-bulk-panel__action-buttons[data-v-0041ba5e] {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.company-bulk-panel__badge-btn[data-v-0041ba5e] {
  /* 크기는 기존 유지, 모양만 회사정보 카드 태그와 동일 (타원형) */
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  transition: all 0.3s ease;
  border: none;
  background: var(--tag-bg, var(--surface-muted));
  color: var(--tag-fg, var(--text-secondary));
}
.company-bulk-panel__badge-btn[data-v-0041ba5e]:hover {
  opacity: 0.8;
}
.company-bulk-panel__badge-btn.tag-active[data-v-0041ba5e] {
  background: var(--surface-success-soft);
  color: var(--color-success-hover);
  border: 1px solid rgba(var(--primary-rgb), 0.35);
  animation: pulse-active-0041ba5e 0.6s ease-in-out;
}
.company-bulk-panel__badge-btn.tag-active[data-v-0041ba5e]:hover {
  opacity: 0.8;
}
.company-bulk-panel__badge-btn.tag-inactive[data-v-0041ba5e] {
  opacity: 0.8;
  animation: pulse-inactive-0041ba5e 0.6s ease-in-out;
}
.company-bulk-panel__badge-btn.tag-inactive[data-v-0041ba5e]:hover {
  opacity: 1;
}
.company-bulk-panel__apply-btn[data-v-0041ba5e] {
  /* 상단 선택/해제 버튼과 동일한 스타일 */
  padding: 0.4rem 0.75rem;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.8rem;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}
.company-bulk-panel__apply-btn[data-v-0041ba5e]:hover {
  background: var(--bg-hover);
  border-color: var(--primary-color);
  color: var(--primary-color);
}
@keyframes pulse-active-0041ba5e {
0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 var(--surface-success-soft);
}
50% {
    transform: scale(1.05);
    box-shadow: 0 0 0 4px transparent;
}
100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 transparent;
}
}
@keyframes pulse-inactive-0041ba5e {
0% {
    transform: scale(1);
    opacity: 0.8;
}
50% {
    transform: scale(1.05);
    opacity: 0.9;
}
100% {
    transform: scale(1);
    opacity: 0.8;
}
}
.company-bulk-panel__schedule-form[data-v-0041ba5e] {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.company-bulk-panel__schedule-field[data-v-0041ba5e] {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.company-bulk-panel__schedule-field label[data-v-0041ba5e] {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text-secondary);
}
.company-bulk-panel__schedule-input[data-v-0041ba5e] {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.8rem;
}
.company-bulk-panel__schedule-input[data-v-0041ba5e]:focus {
  outline: none;
  border-color: var(--primary-color);
}
.company-bulk-panel__schedule-select-wrapper[data-v-0041ba5e] {
  position: relative;
  display: block;
}
.company-bulk-panel__schedule-input--select[data-v-0041ba5e] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 28px;
  background-image: none;
}
.company-bulk-panel__schedule-select-wrapper[data-v-0041ba5e]::after {
  content: '';
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 6px solid var(--text-secondary);
  pointer-events: none;
}
html[data-theme='dark'] .company-bulk-panel__schedule-select-wrapper[data-v-0041ba5e]::after,
body[data-theme='dark'] .company-bulk-panel__schedule-select-wrapper[data-v-0041ba5e]::after {
  border-top-color: var(--text-secondary);
}
.company-bulk-panel__schedule-group[data-v-0041ba5e] {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.company-bulk-panel__schedule-time-wrapper[data-v-0041ba5e] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.company-bulk-panel__schedule-time-input[data-v-0041ba5e] {
  flex: 1;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.8rem;
  text-align: center;
  /* 스케줄 편집 팝업의 시간 입력 컨트롤과 동일하게 스핀 제거 및 텍스트 필드 형태로 표시 */
  appearance: textfield;
  -moz-appearance: textfield;
}
.company-bulk-panel__schedule-time-input[data-v-0041ba5e]::-webkit-outer-spin-button,
.company-bulk-panel__schedule-time-input[data-v-0041ba5e]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.company-bulk-panel__schedule-time-input[data-v-0041ba5e]:focus {
  outline: none;
  border-color: var(--primary-color);
}
.company-bulk-panel__schedule-time-separator[data-v-0041ba5e] {
  font-size: 0.8rem;
  color: var(--text-secondary);
}
.company-bulk-panel__schedule-help[data-v-0041ba5e] {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-top: 0.25rem;
}
.company-bulk-panel__footer[data-v-0041ba5e] {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.25rem 1rem;
  margin: 0;
  border-top: 1px solid var(--border-subtle);
  background: var(--surface-color);
  flex-shrink: 0;
  width: 100%;
  box-sizing: border-box;
}
.company-bulk-panel__footer-btn[data-v-0041ba5e] {
  min-width: 80px;
  padding: 0.4rem 0.9rem;
  border-radius: 6px;
  border: 1px solid transparent;
  font-size: 0.85rem;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s ease;
  background: var(--surface-muted);
  color: var(--text-secondary);
  border-color: var(--border-color);
}
.company-bulk-panel__footer-btn[data-v-0041ba5e]:hover {
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  border-color: var(--border-color);
}
.company-bulk-panel__footer-btn--cancel[data-v-0041ba5e] {
  background: var(--surface-muted);
  color: var(--text-secondary);
  border-color: var(--border-color);
}
.company-bulk-panel__footer-btn--cancel[data-v-0041ba5e]:hover {
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  border-color: var(--border-color);
}
.company-bulk-panel__footer-btn--confirm[data-v-0041ba5e] {
  background: var(--primary-color);
  color: var(--color-white);
  border-color: transparent;
}
.company-bulk-panel__footer-btn--confirm[data-v-0041ba5e]:hover {
  filter: brightness(1.05);
}
.company-bulk-panel__schedule-apply[data-v-0041ba5e] {
  display: flex;
  justify-content: flex-end;
  margin-top: 0;
  padding-top: 0;
}

/* (일괄편집 정보수집 작업요청 입력은 공통 ScraperRequestModal로 이동) */
.company-grid--bulk-mode[data-v-0041ba5e] {
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
}
@media (max-width: 768px) {
.company-list-view-wrapper[data-v-0041ba5e] {
    flex-direction: column;
}
.company-list-view-wrapper--bulk-mode .company-bulk-panel[data-v-0041ba5e] {
    flex: 0 0 auto;
    min-width: 100%;
    max-width: 100%;
    max-height: 50vh;
}
}

.page[data-v-251e7fda] {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex: 1 1 auto;
  min-height: 0;
}
.page__header h2[data-v-251e7fda] {
  margin: 0;
}
.page__desc[data-v-251e7fda] {
  margin: 0.5rem 0 0;
  color: var(--text-secondary);
}
.page__card[data-v-251e7fda] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.25rem;
}
@media (max-width: 768px) {
.page__desc[data-v-251e7fda] {
    font-size: 0.9rem;
    line-height: 1.5;
    margin-top: 0.25rem;
}
}
@media (max-width: 480px) {
.page__card[data-v-251e7fda] {
    padding: 0.5rem;
}
}
.company-page-root[data-v-251e7fda] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  gap: 0 !important; /* .page 클래스의 gap: 1.5rem 오버라이드 */
  background: var(--surface-color); /* iOS Safari 하단 주소표시줄 회색 방지 */
}
.company-page-root > .page__header[data-v-251e7fda] {
  margin-top: 0;
}
.company-page-root .page__desc[data-v-251e7fda] {
  margin-top: 0;
}
.company-page[data-v-251e7fda] {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
  flex: 1 1 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.company-page-root .page__card[data-v-251e7fda] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0 !important;
  background: transparent;
  border: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.company-page__tabs[data-v-251e7fda] {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.company-page__tab-header[data-v-251e7fda] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
}

/* 레이아웃 속성만 유지 — 시각 스타일은 AppButton이 담당 */
.company-page__bulk-toggle-btn[data-v-251e7fda] {
  margin-right: 0.75rem;
}
.company-page__tab-panels[data-v-251e7fda] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: var(--surface-color);
  overflow: hidden;
  position: relative;
  padding: 0.75rem;
  touch-action: pan-y pinch-zoom; /* 수직 스크롤은 허용, 수평 스와이프는 제어 */
}
.company-page__tab-panel[data-v-251e7fda] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
  position: relative;
}
.company-page__toolbar[data-v-251e7fda] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.25rem 0.75rem;
  border-radius: 6px;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
}
.company-page__toolbar-left[data-v-251e7fda] {
  flex: 1 1 auto;
}
.company-page__toolbar-right[data-v-251e7fda] {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.company-page__sort-control[data-v-251e7fda] {
  display: inline-flex;
  align-items: center;
}
.company-page__sort-select[data-v-251e7fda] {
  padding: 6px 10px;
  border-radius: 4px 0 0 4px;
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.8rem;
  border-right: none;
  height: 32px;
  box-sizing: border-box;
}
.company-page__sort-select[data-v-251e7fda]:hover {
  border-color: var(--primary-color);
  background: var(--bg-hover);
}
.company-page__search-input[data-v-251e7fda] {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border-radius: 4px;
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.9rem;
}
.company-page__query-bar[data-v-251e7fda] {
  display: flex;
  align-items: stretch;
  gap: 0.5rem;
}
.company-page__history-btn[data-v-251e7fda] {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  padding: 0 8px;
  border-radius: 4px;
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  color: var(--text-secondary);
  font-size: 0.8rem;
  cursor: pointer;
}
.company-page__history-btn[data-v-251e7fda]:hover {
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.company-page__history-caret[data-v-251e7fda] {
  font-size: 0.7rem;
}
.company-page__query-main[data-v-251e7fda] {
  flex: 1 1 auto;
}
.company-page__toolbar-left[data-v-251e7fda] .p-inputgroup {
  width: 100%;
  border-radius: 4px;
  overflow: hidden;
}
.company-page__toolbar-left[data-v-251e7fda] .p-autocomplete-input {
  border-radius: 0;
  border: 1px solid var(--border-color);
  border-right: none;
  background: transparent;
  font-size: 0.9rem;
  padding: 0 10px;
}
.company-page__toolbar-left[data-v-251e7fda] .p-inputgroup-addon {
  border-radius: 0;
  border: 1px solid var(--border-color);
  border-left: none;
  background: var(--surface-color);
  display: inline-flex;
  align-items: center;
}

/* 키워드 입력 전체 호버 시 인풋·버튼 영역 모두 동일 배경/테두리 느낌으로 */
.company-page__toolbar-left[data-v-251e7fda] .p-inputgroup:hover .p-inputgroup-addon {
  background: var(--bg-hover);
  border-color: var(--primary-color);
}
.company-page__toolbar-left[data-v-251e7fda] .p-inputgroup:hover .p-autocomplete-input {
  border-color: var(--primary-color);
}
.company-page__icon-btn[data-v-251e7fda] {
  border: none;
  background: transparent;
  padding: 0 0.5rem;
  cursor: pointer;
  color: var(--text-secondary);
  font-size: 0.9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}
.company-page__icon-btn[data-v-251e7fda]:hover {
  background: var(--bg-hover);
  color: var(--primary-color);
}
.company-page__primary-btn[data-v-251e7fda] {
  padding: 0 1.1rem;
  border-radius: 4px;
  border: none;
  background: var(--primary-color);
  color: var(--color-white);
  font-size: 0.85rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}
.company-page__primary-btn[data-v-251e7fda]:hover {
  filter: brightness(1.05);
}
.company-page__sort-order-btn[data-v-251e7fda] {
  padding: 0.4rem 0.85rem;
  border-radius: 0 4px 4px 0;
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  color: var(--text-secondary);
  font-size: 0.8rem;
  cursor: pointer;
  border-left: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  box-sizing: border-box;
}
.company-page__sort-order-btn[data-v-251e7fda]:hover {
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.company-page__placeholder[data-v-251e7fda] {
  margin: 0;
  padding: 1.5rem 0.5rem;
  font-size: 0.9rem;
  color: var(--text-secondary);
  text-align: center;
  line-height: 1.6;
}

/* 모바일에서 일괄편집 버튼 숨김 */
@media (max-width: 480px) {
.company-page__bulk-toggle-btn[data-v-251e7fda] {
    display: none;
}
}
@media (max-width: 768px) {
.company-page__toolbar[data-v-251e7fda] {
    flex-direction: column;
    align-items: stretch;
}
.company-page__toolbar-right[data-v-251e7fda] {
    justify-content: flex-end;
}
}
@media (max-width: 480px) {
.company-page__tab-header[data-v-251e7fda] {
    flex-direction: column;
    align-items: stretch;
}
.company-page__bulk-toggle-btn[data-v-251e7fda] {
    align-self: flex-start;
    margin-top: 0.5rem;
    margin-right: 0;
}
.company-page__tab-panels[data-v-251e7fda] {
    padding: 0.5rem;
}
}
@media (max-width: 480px) {
.company-page__tab-panels[data-v-251e7fda] {
    padding: 0.25rem;
}
}

/* HTML 버전과 동일한 스타일 */
.detail-item[data-v-82e2a5ea] {
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 4px;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  word-wrap: break-word;
  position: relative;
  background: var(--bg-primary);
  box-shadow: var(--shadow-sm);
}
.detail-item[data-v-82e2a5ea]:last-child {
  margin-bottom: 0;
}
.detail-item[data-v-82e2a5ea]:hover {
  background: var(--bg-secondary);
  box-shadow: var(--shadow-sm);
  border-color: var(--primary-color);
}
.detail-item.last-clicked[data-v-82e2a5ea] {
  border-color: var(--primary-color);
  box-shadow: var(--shadow-md);
}
.detail-main[data-v-82e2a5ea] {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto;
  align-items: start;
  gap: 12px 0;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  position: relative;
}
.product-section[data-v-82e2a5ea] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  width: 100%;
  overflow: hidden;
  grid-row: 1;
  grid-column: 1;
}
.sales-period[data-v-82e2a5ea] {
  position: absolute;
  top: 0;
  right: 0;
  font-size: 14px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  flex-shrink: 0;
  height: fit-content;
}
.sales-period.sales-active[data-v-82e2a5ea] {
  color: var(--primary-color);
}
.sales-period.sales-active i[data-v-82e2a5ea] {
  color: var(--primary-color);
}
.sales-period.sales-ended[data-v-82e2a5ea] {
  color: var(--text-secondary);
}
.sales-period.sales-ended i[data-v-82e2a5ea] {
  color: var(--text-secondary);
}
.documents-inline[data-v-82e2a5ea] {
  grid-row: 2;
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  /* 문서 버튼 위/아래 여백은 documents-container에서 관리 */
  padding: 0 4px 0 4px;
  max-width: 100%;
  overflow: visible;
}
.documents-container[data-v-82e2a5ea] {
  grid-row: 2;
  grid-column: 1 / -1;
  padding: 6px 4px 0 4px;
  border-top: 1px solid var(--border-color);
  width: 100%;
  box-sizing: border-box;
  overflow: visible;
}
.product-meta[data-v-82e2a5ea] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  max-width: 100%;
  overflow: hidden;
}
.product-name[data-v-82e2a5ea] {
  font-size: 16px;
  font-weight: 700;
  color: var(--text-primary);
  word-break: break-word;
  overflow-wrap: break-word;
  line-height: 1.4;
  min-width: 0;
  width: 100%;
  /* 상품명이 판매일 아래까지 확장되도록, 첫 줄만 우측 여백 */
  padding-right: 0;
  position: relative;
}
.company-badge[data-v-82e2a5ea] {
  font-size: 12px;
  color: var(--text-secondary);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  overflow: hidden;
}
.company-badge i[data-v-82e2a5ea] {
  font-size: 11px;
  flex-shrink: 0;
}
.company-favicon-img[data-v-82e2a5ea] {
  width: 16px;
  height: 16px;
  object-fit: contain;
  flex-shrink: 0;
}
.type-badge[data-v-82e2a5ea] {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  color: var(--color-info);
  background: var(--surface-info-soft);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  line-height: 1.2;
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.code-badge[data-v-82e2a5ea] {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  color: var(--primary-color);
  background: var(--surface-primary-soft);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  line-height: 1.2;
  font-family: 'Courier New', monospace;
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.update-count-badge[data-v-82e2a5ea] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--color-orange);
  background: var(--surface-orange-soft);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.2s;
}
.update-count-badge[data-v-82e2a5ea]:hover {
  background: var(--surface-orange-soft);
  transform: scale(1.05);
}
.update-count-badge i[data-v-82e2a5ea] {
  font-size: 10px;
}
.revision-order-badge[data-v-82e2a5ea] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--color-indigo);
  background: var(--surface-indigo-soft);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.2s;
}
.revision-order-badge[data-v-82e2a5ea]:hover {
  background: var(--surface-indigo-soft);
  transform: scale(1.05);
}
.etc-badge[data-v-82e2a5ea] {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  color: var(--text-secondary);
  background: var(--surface-muted);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  line-height: 1.2;
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.product-id-badge[data-v-82e2a5ea] {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  color: var(--text-tertiary);
  background: var(--surface-muted);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  font-family: 'Courier New', monospace;
  white-space: nowrap;
  line-height: 1.2;
}
.detail-toggle-icon[data-v-82e2a5ea] {
  position: absolute;
  right: 12px;
  bottom: 12px;
  /* 개정 이력 영역 위로 떠 있도록 z-index 부여 */
  z-index: 3;
}
.detail-toggle-icon[data-v-82e2a5ea]:hover {
  background: var(--bg-hover);
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.detail-toggle-icon[data-v-82e2a5ea]:active {
  transform: scale(0.95);
}
.document-link[data-v-82e2a5ea] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: var(--bg-primary);
  border: 1px solid var(--border-color);
  border-radius: 4px;
  color: var(--text-primary);
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  transition: all 0.2s;
  white-space: nowrap;
}
.document-link[data-v-82e2a5ea]:hover {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
  color: var(--primary-color);
  /* 모바일에서 호버 시 위로 살짝 올라가면서 카드 상단이 잘려 보이는 현상이 있어
     Y축 이동 효과는 제거하고, 그림자만 유지한다. */
  box-shadow: var(--shadow-sm);
}
.document-link.active[data-v-82e2a5ea] {
  background: var(--bg-primary);
  color: var(--text-primary);
  border: 2px solid var(--primary-color);
}
.document-link.active[data-v-82e2a5ea]:hover {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.document-link i[data-v-82e2a5ea] {
  font-size: 12px;
}

/* 문서 그룹 트리거 버튼 */
.doc-group-trigger[data-v-82e2a5ea] {
  cursor: pointer;
  user-select: none;
}
.doc-group-trigger[data-v-82e2a5ea]:hover {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
  color: var(--primary-color);
  box-shadow: var(--shadow-sm);
}
.doc-count-badge[data-v-82e2a5ea] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  background: var(--primary-color);
  color: var(--color-white);
}

/* 문서 그룹 팝업 */
.doc-popup-overlay[data-v-82e2a5ea] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}
.doc-popup[data-v-82e2a5ea] {
  width: 100%;
  max-width: 480px;
  margin: 0 1rem;
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
  max-height: 70vh;
}
.doc-popup__header[data-v-82e2a5ea] {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.doc-popup__title[data-v-82e2a5ea] {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
}
.doc-popup__title i[data-v-82e2a5ea] {
  font-size: 14px;
  color: var(--primary-color);
}
.doc-popup__count[data-v-82e2a5ea] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 700;
  background: var(--primary-color);
  color: var(--color-white);
}
.doc-popup__body[data-v-82e2a5ea] {
  padding: 8px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.doc-popup__item[data-v-82e2a5ea] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 6px;
  text-decoration: none;
  color: var(--text-primary);
  font-size: 13px;
  cursor: pointer;
  transition: all 0.15s ease;
  border: 1px solid transparent;
}
.doc-popup__item[data-v-82e2a5ea]:hover {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.doc-popup__item i[data-v-82e2a5ea] {
  font-size: 12px;
  opacity: 0.7;
  flex-shrink: 0;
}
.doc-popup__item-name[data-v-82e2a5ea] {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.doc-popup__item-size[data-v-82e2a5ea] {
  font-size: 11px;
  color: var(--text-tertiary);
  white-space: nowrap;
  flex-shrink: 0;
}
.doc-size-hint[data-v-82e2a5ea] {
  font-size: 11px;
  color: var(--text-tertiary);
  margin-left: auto;
  white-space: nowrap;
}
.error-badge[data-v-82e2a5ea] {
  display: inline-block;
  margin-left: 3px;
  padding: 1px 3px;
  border-radius: 3px;
  font-size: 8px;
  font-weight: 600;
  line-height: 1;
  background: var(--color-warning);
  color: var(--background-color);
  border: 1px solid var(--color-warning-hover);
  vertical-align: middle;
}
.no-documents[data-v-82e2a5ea] {
  font-size: 12px;
  color: var(--text-tertiary);
  font-style: italic;
}

/* 하일라이팅 스타일은 전역 스타일(search-highlight.css)에서 관리 */
.revision-history[data-v-82e2a5ea] {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--border-color);
  position: relative;
  z-index: 1;
}
.revision-history-header-bar[data-v-82e2a5ea] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
  padding: 4px 0;
}
.revision-history-title[data-v-82e2a5ea] {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
}
.revision-cycle-message[data-v-82e2a5ea] {
  font-size: 12px;
  color: var(--text-secondary);
  font-weight: 400;
  margin-left: 8px;
}
.revision-history-controls[data-v-82e2a5ea] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.revision-history-loading[data-v-82e2a5ea] {
  text-align: center;
  padding: 20px;
  color: var(--text-secondary);
}
.revision-history-loading--inline[data-v-82e2a5ea] {
  padding: 12px 8px 4px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.revision-history-loading-text[data-v-82e2a5ea] {
  font-size: 12px;
  color: var(--text-secondary);
}
.chart-loading-indicator[data-v-82e2a5ea] {
  display: flex;
  gap: 4px;
}
.chart-loading-dot[data-v-82e2a5ea] {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background-color: var(--primary-color);
  opacity: 0.3;
  animation: chart-loading-pulse-82e2a5ea 1s infinite ease-in-out alternate;
}
.chart-loading-dot[data-v-82e2a5ea]:nth-child(2) {
  animation-delay: 0.15s;
}
.chart-loading-dot[data-v-82e2a5ea]:nth-child(3) {
  animation-delay: 0.3s;
}
@keyframes chart-loading-pulse-82e2a5ea {
0% {
    transform: translateY(0);
    opacity: 0.3;
}
100% {
    transform: translateY(-4px);
    opacity: 1;
}
}
.revision-history-content[data-v-82e2a5ea] {
  max-height: 400px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-top: 4px;
  padding-right: 8px;
}

/* Webkit 브라우저용 스크롤바 스타일 - 얇고 둥근 핸들 */
.revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar {
  width: 8px;
  height: 8px;
  -webkit-appearance: none;
  display: block;
}
.revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 5px;
  -webkit-box-shadow: none;
}
.revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 999px;
  border: 2px solid transparent;
  -webkit-box-shadow: none;
}
.revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-thumb:hover {
  background: var(--text-secondary);
}
.revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-thumb:active {
  background: var(--text-secondary);
}

/* 다크 테마에서 스크롤바 더 밝게 */
html[data-theme='dark'] .revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-thumb,
body[data-theme='dark'] .revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
}
html[data-theme='dark'] .revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-thumb:hover,
body[data-theme='dark'] .revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}
html[data-theme='dark'] .revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-track,
body[data-theme='dark'] .revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-track {
  background: var(--surface-color);
  -webkit-box-shadow: inset 0 0 2px var(--surface-stripe);
}

/* 라이트 테마에서 스크롤바 더 어둡게 */
html[data-theme='light'] .revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-thumb,
body[data-theme='light'] .revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
}
html[data-theme='light'] .revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-thumb:hover,
body[data-theme='light'] .revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}
html[data-theme='light'] .revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-track,
body[data-theme='light'] .revision-history-content[data-v-82e2a5ea]::-webkit-scrollbar-track {
  background: var(--surface-color);
  -webkit-box-shadow: inset 0 0 2px var(--border-subtle);
}
.revision-history-list[data-v-82e2a5ea] {
  list-style: none;
  padding: 0;
  margin: 0;
}
.revision-history-item[data-v-82e2a5ea] {
  padding: 12px;
  margin-bottom: 8px;
  background: var(--bg-primary);
  border-radius: 8px;
  border: 1px solid var(--border-color);
}
.revision-history-item[data-v-82e2a5ea]:last-child {
  margin-bottom: 0;
}

/* 현재 개정순번 카드 강조 */
.revision-history-item-current[data-v-82e2a5ea] {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
}
.revision-history-row[data-v-82e2a5ea] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.revision-history-header[data-v-82e2a5ea] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.revision-number[data-v-82e2a5ea] {
  font-weight: 600;
  color: var(--primary-color);
  font-size: 13px;
}
.revision-dates[data-v-82e2a5ea] {
  font-size: 12px;
  color: var(--text-secondary);
}
.revision-dates.sales-active[data-v-82e2a5ea] {
  color: var(--primary-color);
  font-weight: 600;
}
.revision-documents[data-v-82e2a5ea] {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
  padding: 8px 4px 0 4px;
  border-top: 1px solid var(--border-color);
}
.revision-history-empty[data-v-82e2a5ea] {
  font-size: 12px;
  color: var(--text-secondary);
  text-align: center;
  padding: 12px 0;
}
.revision-history-error[data-v-82e2a5ea] {
  font-size: 12px;
  color: var(--color-danger-hover);
  text-align: center;
  padding: 12px 0;
}
.revision-history-chart[data-v-82e2a5ea] {
  width: 100%;
  height: 280px;
  cursor: default;
}
.revision-sort-toggle[data-v-82e2a5ea] {
  padding: 4px 10px;
  border: 1px solid var(--border-color);
  background: var(--bg-tertiary);
  color: var(--text-secondary);
  border-radius: 6px;
  cursor: pointer;
  font-size: 11px;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: all 0.2s;
  height: 28px;
  box-sizing: border-box;
  white-space: nowrap;
}
.revision-sort-toggle[data-v-82e2a5ea]:hover {
  /* 배경은 그대로 두고, 테두리/텍스트/아이콘만 주제색으로 */
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.revision-sort-toggle i[data-v-82e2a5ea] {
  font-size: 12px;
}
.chart-metric-toggle[data-v-82e2a5ea] {
  padding: 4px 10px;
  border: 1px solid var(--border-color);
  background: var(--bg-tertiary);
  color: var(--text-secondary);
  border-radius: 6px;
  cursor: pointer;
  font-size: 11px;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: all 0.2s;
  height: 28px;
  box-sizing: border-box;
  white-space: nowrap;
}
.chart-metric-toggle[data-v-82e2a5ea]:hover:not(:disabled) {
  /* 배경은 그대로 두고, 테두리/텍스트/아이콘만 주제색으로 */
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.chart-metric-toggle[data-v-82e2a5ea]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.chart-metric-toggle i[data-v-82e2a5ea] {
  font-size: 12px;
}
.revision-close-btn[data-v-82e2a5ea]:hover {
  filter: brightness(1.05);
}

/* 문서 이름 반응형 - 모바일에서만 약어 사용 */
.document-link .doc-name-short[data-v-82e2a5ea] {
  display: none;
}

/* 태블릿 및 모바일에서 판매일이 아래로 내려가도록 */
@media (max-width: 768px) {
.detail-main[data-v-82e2a5ea] {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    gap: 8px;
    max-width: 100%;
    overflow: hidden;
}
.product-section[data-v-82e2a5ea] {
    grid-row: 1;
    grid-column: 1;
    max-width: 100%;
    overflow: hidden;
    padding-right: 0; /* 모바일에서는 패딩 제거 */
}
.product-meta[data-v-82e2a5ea] {
    gap: 6px; /* 모바일에서 배지 간격 줄이기 */
}
.sales-period[data-v-82e2a5ea] {
    position: static; /* 모바일에서는 일반 위치 */
    grid-row: 2;
    grid-column: 1;
    font-size: 13px;
    align-self: start;
    max-width: 100%;
    overflow: hidden;
    white-space: normal;
    word-break: break-word;
}
.documents-inline[data-v-82e2a5ea] {
    grid-row: 3;
    grid-column: 1;
    max-width: 100%;
    overflow: hidden;
}
.documents-container[data-v-82e2a5ea] {
    grid-row: 3;
    grid-column: 1;
    max-width: 100%;
    overflow: hidden;
}
}
@media (max-width: 480px) {
.document-link .doc-name-full[data-v-82e2a5ea] {
    display: none;
}
.document-link .doc-name-short[data-v-82e2a5ea] {
    display: inline;
}
  
  /* 모바일에서 배지 크기 및 간격 조정 */
.product-meta[data-v-82e2a5ea] {
    gap: 4px; /* 모바일에서 배지 간격 더 줄이기 */
}
.product-id-badge[data-v-82e2a5ea] {
    font-size: 10px; /* 모바일에서 폰트 크기 약간 줄이기 */
    padding: 2px 6px;
}
.company-badge[data-v-82e2a5ea],
  .type-badge[data-v-82e2a5ea],
  .code-badge[data-v-82e2a5ea],
  .revision-order-badge[data-v-82e2a5ea],
  .etc-badge[data-v-82e2a5ea],
  .update-count-badge[data-v-82e2a5ea] {
    font-size: 10px; /* 모바일에서 배지 폰트 크기 통일 */
    padding: 2px 6px;
}
}

/* 다크 테마 */
html[data-theme='dark'] .detail-item[data-v-82e2a5ea],
body[data-theme='dark'] .detail-item[data-v-82e2a5ea] {
  border-color: var(--border-color);
}
html[data-theme='dark'] .detail-item[data-v-82e2a5ea]:hover,
body[data-theme='dark'] .detail-item[data-v-82e2a5ea]:hover {
  border-color: var(--primary-color);
}
html[data-theme='dark'] .detail-item.last-clicked[data-v-82e2a5ea],
body[data-theme='dark'] .detail-item.last-clicked[data-v-82e2a5ea] {
  border-color: var(--primary-color);
  box-shadow: var(--shadow-md);
}
html[data-theme='dark'] .company-badge[data-v-82e2a5ea],
body[data-theme='dark'] .company-badge[data-v-82e2a5ea] {
  color: var(--text-secondary);
}
html[data-theme='dark'] .type-badge[data-v-82e2a5ea],
body[data-theme='dark'] .type-badge[data-v-82e2a5ea] {
  color: var(--color-info);
  background: var(--surface-info-soft);
}
html[data-theme='dark'] .code-badge[data-v-82e2a5ea],
body[data-theme='dark'] .code-badge[data-v-82e2a5ea] {
  color: var(--primary-color);
  background: var(--surface-primary-soft);
}
html[data-theme='dark'] .update-count-badge[data-v-82e2a5ea],
body[data-theme='dark'] .update-count-badge[data-v-82e2a5ea] {
  color: var(--color-orange);
  background: var(--surface-orange-soft);
}
html[data-theme='dark'] .update-count-badge[data-v-82e2a5ea]:hover,
body[data-theme='dark'] .update-count-badge[data-v-82e2a5ea]:hover {
  background: var(--surface-orange-soft);
}
html[data-theme='dark'] .revision-order-badge[data-v-82e2a5ea],
body[data-theme='dark'] .revision-order-badge[data-v-82e2a5ea] {
  color: var(--color-indigo);
  background: var(--surface-indigo-soft);
}
html[data-theme='dark'] .revision-order-badge[data-v-82e2a5ea]:hover,
body[data-theme='dark'] .revision-order-badge[data-v-82e2a5ea]:hover {
  background: var(--surface-indigo-soft);
}
html[data-theme='dark'] .etc-badge[data-v-82e2a5ea],
body[data-theme='dark'] .etc-badge[data-v-82e2a5ea] {
  color: var(--text-secondary);
  background: var(--surface-muted);
}
html[data-theme='dark'] .product-id-badge[data-v-82e2a5ea],
body[data-theme='dark'] .product-id-badge[data-v-82e2a5ea] {
  color: var(--text-tertiary);
  background: var(--surface-muted);
}
html[data-theme='dark'] .revision-history[data-v-82e2a5ea],
body[data-theme='dark'] .revision-history[data-v-82e2a5ea] {
  border-top-color: var(--border-color);
}
html[data-theme='dark'] .sales-period.sales-active[data-v-82e2a5ea],
body[data-theme='dark'] .sales-period.sales-active[data-v-82e2a5ea] {
  color: var(--primary-color);
}
html[data-theme='dark'] .sales-period.sales-active i[data-v-82e2a5ea],
body[data-theme='dark'] .sales-period.sales-active i[data-v-82e2a5ea] {
  color: var(--primary-color);
}
html[data-theme='dark'] .sales-period.sales-ended[data-v-82e2a5ea],
body[data-theme='dark'] .sales-period.sales-ended[data-v-82e2a5ea] {
  color: var(--text-secondary);
}
html[data-theme='dark'] .sales-period.sales-ended i[data-v-82e2a5ea],
body[data-theme='dark'] .sales-period.sales-ended i[data-v-82e2a5ea] {
  color: var(--text-secondary);
}
html[data-theme='dark'] .document-link[data-v-82e2a5ea],
body[data-theme='dark'] .document-link[data-v-82e2a5ea] {
  background: var(--bg-tertiary);
  border-color: var(--border-color);
  color: var(--text-primary);
}
html[data-theme='dark'] .document-link[data-v-82e2a5ea]:hover,
body[data-theme='dark'] .document-link[data-v-82e2a5ea]:hover {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
  color: var(--primary-color);
}
html[data-theme='dark'] .document-link.active[data-v-82e2a5ea],
body[data-theme='dark'] .document-link.active[data-v-82e2a5ea] {
  background: var(--bg-tertiary);
  color: var(--text-primary);
  border: 2px solid var(--primary-color);
}
html[data-theme='dark'] .document-link.active[data-v-82e2a5ea]:hover,
body[data-theme='dark'] .document-link.active[data-v-82e2a5ea]:hover {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
  color: var(--primary-color);
}
html[data-theme='dark'] .no-documents[data-v-82e2a5ea],
body[data-theme='dark'] .no-documents[data-v-82e2a5ea] {
  color: var(--text-tertiary);
}
html[data-theme='dark'] .doc-count-badge[data-v-82e2a5ea],
body[data-theme='dark'] .doc-count-badge[data-v-82e2a5ea] {
  background: var(--primary-color);
  color: var(--background-color);
}
html[data-theme='dark'] .doc-popup__item[data-v-82e2a5ea]:hover,
body[data-theme='dark'] .doc-popup__item[data-v-82e2a5ea]:hover {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
}
html[data-theme='dark'] .doc-popup__item-size[data-v-82e2a5ea],
body[data-theme='dark'] .doc-popup__item-size[data-v-82e2a5ea] {
  color: var(--text-tertiary);
}
html[data-theme='dark'] .error-badge[data-v-82e2a5ea],
body[data-theme='dark'] .error-badge[data-v-82e2a5ea] {
  background: var(--color-warning);
  color: var(--background-color);
  border-color: var(--color-warning-hover);
}
html[data-theme='dark'] .documents-inline[data-v-82e2a5ea],
body[data-theme='dark'] .documents-inline[data-v-82e2a5ea] {
  border-top-color: var(--border-color);
}

/* 다크 테마에서 현재 개정순번 카드 강조 */
html[data-theme='dark'] .revision-history-item-current[data-v-82e2a5ea],
body[data-theme='dark'] .revision-history-item-current[data-v-82e2a5ea] {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
}

.product-list-view-wrapper[data-v-b0c6b704] {
  display: flex;
  flex-direction: column;
  height: 100%;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  gap: 0;
}
.product-list-view-wrapper[data-v-b0c6b704] .list-view {
  height: 100%;
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
}
.product-grid[data-v-b0c6b704] {
  display: grid;
  /* 상품 카드는 항상 1단으로 표시 */
  grid-template-columns: 1fr;
  gap: 0.5rem;
}
.products-group[data-v-b0c6b704] {
  position: relative;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  background: var(--surface-card, var(--surface-color));
  padding: 14px 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: var(--shadow-sm);
  margin-bottom: 0.75rem;
}
.products-group[data-v-b0c6b704]:last-child {
  margin-bottom: 0;
}
.products-group-header[data-v-b0c6b704] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.products-group-title[data-v-b0c6b704] {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-secondary);
}
.products-group-meta[data-v-b0c6b704] {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.products-group-count[data-v-b0c6b704] {
  font-size: 12px;
  color: var(--text-tertiary);
}
.products-group-body[data-v-b0c6b704] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.products-group-body[data-v-b0c6b704] .detail-item {
  margin-bottom: 0;
}

/* 하일라이팅 스타일은 전역 스타일(search-highlight.css)에서 관리 */
@media (max-width: 600px) {
.product-grid[data-v-b0c6b704] {
    grid-template-columns: 1fr;
}
}
.product-page__placeholder[data-v-b0c6b704] {
  margin: 0;
  padding: 1.5rem 0.5rem;
  font-size: 0.9rem;
  color: var(--text-secondary);
  text-align: center;
  line-height: 1.6;
}

/* 다크 테마 */
html[data-theme='dark'] .products-group[data-v-b0c6b704],
body[data-theme='dark'] .products-group[data-v-b0c6b704] {
  background: var(--surface-stripe);
  border-color: var(--border-subtle);
  box-shadow: none;
}
@media (max-width: 480px) {
.products-group[data-v-b0c6b704] {
    padding: 4px 4px 4px;
    margin-top: 0.25rem;
    margin-bottom: 0.25rem;
    gap: 4px;
}
.products-group[data-v-b0c6b704]:first-child {
    margin-top: 0;
}
.products-group-header[data-v-b0c6b704] {
    gap: 4px;
}
.products-group-body[data-v-b0c6b704] {
    gap: 4px;
}
}


/* 추가 상세 필터 그룹은 공통 컴포넌트 DetailFilterField 로 이관 */


.list-filter-bar[data-v-eddc58f6] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}
.list-filter-bar__search-wrapper[data-v-eddc58f6] {
  flex: 1;
  min-width: 0;
}
@media (max-width: 768px) {
.list-filter-bar[data-v-eddc58f6] {
    flex-wrap: wrap;
    padding: var(--space-2) var(--space-3);
}
.list-filter-bar__search-wrapper[data-v-eddc58f6] {
    flex-basis: 100%;
    order: -1;
}
}

.audit-card[data-v-c8d36870] {
  border: 1px solid var(--border-color);
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.2s ease;
}
.audit-card[data-v-c8d36870]:hover {
  border-color: var(--border-color-hover, var(--border-color));
}
.audit-card--empty[data-v-c8d36870] {
  opacity: 0.5;
}
.audit-card--empty .audit-card__header[data-v-c8d36870] {
  cursor: default;
}
.audit-card__header[data-v-c8d36870] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  padding: 0.75rem 1rem;
  background: var(--surface-color);
  border: none;
  cursor: pointer;
  text-align: left;
  font-size: 0.875rem;
  color: var(--text-primary);
  transition: background 0.15s ease;
}
.audit-card__header[data-v-c8d36870]:hover {
  background: var(--surface-hover);
}
.audit-card--empty .audit-card__header[data-v-c8d36870]:hover {
  background: var(--surface-color);
}
.audit-card__severity[data-v-c8d36870] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  flex-shrink: 0;
  font-size: 0.875rem;
}
.audit-card__severity--high[data-v-c8d36870] { color: var(--color-danger);
}
.audit-card__severity--medium[data-v-c8d36870] { color: var(--color-warning);
}
.audit-card__severity--low[data-v-c8d36870] { color: var(--color-info);
}
.audit-card__name[data-v-c8d36870] {
  flex: 1 1 auto;
  font-weight: 500;
}
.audit-card__count[data-v-c8d36870] {
  flex-shrink: 0;
  font-weight: 600;
  font-size: 0.8rem;
  padding: 0.125rem 0.5rem;
  border-radius: 10px;
}
.audit-card__count--high[data-v-c8d36870] { background: var(--surface-danger-soft); color: var(--color-danger);
}
.audit-card__count--medium[data-v-c8d36870] { background: var(--surface-warning-soft); color: var(--color-warning);
}
.audit-card__count--low[data-v-c8d36870] { background: var(--surface-info-soft); color: var(--color-info);
}
.audit-card__percent[data-v-c8d36870] {
  font-weight: 400;
  opacity: 0.75;
}
.audit-card__chevron[data-v-c8d36870] {
  flex-shrink: 0;
  font-size: 0.7rem;
  color: var(--text-tertiary);
  transition: transform 0.2s ease;
}
.audit-card--expanded .audit-card__chevron[data-v-c8d36870] {
  transform: rotate(90deg);
}
.audit-card--empty .audit-card__chevron[data-v-c8d36870] {
  display: none;
}
.audit-card__body[data-v-c8d36870] {
  border-top: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
}
.audit-card__items[data-v-c8d36870] {
  padding: 0.5rem 0;
}
.audit-item[data-v-c8d36870] {
  display: grid;
  grid-template-columns: minmax(100px, 0.8fr) minmax(120px, 1.2fr) minmax(240px, 1fr) minmax(100px, 0.8fr);
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  font-size: 0.8rem;
  align-items: center;
  border-bottom: 1px solid var(--border-subtle);
}
.audit-item[data-v-c8d36870]:last-child {
  border-bottom: none;
}
.audit-item__company[data-v-c8d36870] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  min-width: 0;
}
.audit-item__favicon[data-v-c8d36870] {
  width: 16px;
  height: 16px;
  object-fit: contain;
  border-radius: 2px;
  flex-shrink: 0;
}
.audit-item__favicon-icon[data-v-c8d36870] {
  width: 14px;
  font-size: 12px;
  color: var(--text-tertiary);
  flex-shrink: 0;
  text-align: center;
}
.audit-item__company-name[data-v-c8d36870] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-secondary);
}
.audit-item__product[data-v-c8d36870] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
  color: var(--text-primary);
}
.audit-item__product--clickable[data-v-c8d36870] {
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: transparent;
  transition: text-decoration-color 0.15s ease;
}
.audit-item__product--clickable[data-v-c8d36870]:hover {
  text-decoration-color: var(--primary-color);
  color: var(--primary-color);
}
.audit-item__detail[data-v-c8d36870] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  min-width: 0;
}
.audit-item__value[data-v-c8d36870] {
  font-family: var(--font-mono, monospace);
  font-size: 0.75rem;
  color: var(--color-danger);
  white-space: nowrap;
}
.audit-item__message[data-v-c8d36870] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.audit-card__actions[data-v-c8d36870] {
  display: flex;
  border-top: 1px solid var(--border-color);
}
.audit-card__fix-btn[data-v-c8d36870] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  flex-shrink: 0;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  background: var(--surface-success-soft);
  color: var(--color-success);
  font-size: 0.75rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s ease;
}
.audit-card__fix-btn[data-v-c8d36870]:hover {
  background: var(--surface-primary-soft);
}
.audit-card__more-btn[data-v-c8d36870] {
  flex: 1;
}
@media (max-width: 900px) {
.audit-item[data-v-c8d36870] {
    grid-template-columns: 1fr 1fr;
    gap: 0.375rem;
}
.audit-item__detail[data-v-c8d36870] {
    flex-wrap: wrap;
}
}
@media (max-width: 768px) {
.audit-item[data-v-c8d36870] {
    grid-template-columns: 1fr;
    gap: 0.25rem;
    padding: 0.625rem 1rem;
}
}

.audit-detail-overlay[data-v-10d27c17] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
}
.audit-detail-modal[data-v-10d27c17] {
  width: 100%;
  max-width: 800px;
  height: 80vh;
  margin: 0 1rem;
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.audit-detail-modal__header[data-v-10d27c17] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}
.audit-detail-modal__title[data-v-10d27c17] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  flex: 1;
}
.audit-detail-modal__count[data-v-10d27c17] {
  font-weight: 600;
  font-size: 0.8rem;
  padding: 0.125rem 0.5rem;
  border-radius: 10px;
  flex-shrink: 0;
}
.audit-detail-modal__count--high[data-v-10d27c17] { background: var(--surface-danger-soft); color: var(--color-danger);
}
.audit-detail-modal__count--medium[data-v-10d27c17] { background: var(--surface-warning-soft); color: var(--color-warning);
}
.audit-detail-modal__count--low[data-v-10d27c17] { background: var(--surface-info-soft); color: var(--color-info);
}
.audit-detail-modal__body[data-v-10d27c17] {
  flex: 1;
  overflow-y: auto;
  min-height: 200px;
}
.audit-detail-modal__loading[data-v-10d27c17] {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem;
  font-size: 1.5rem;
  color: var(--text-tertiary);
}
.audit-detail-modal__empty[data-v-10d27c17] {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem;
  font-size: 0.875rem;
  color: var(--text-tertiary);
}
.audit-detail-modal__items[data-v-10d27c17] {
  padding: 0.5rem 0;
}
.audit-detail-item[data-v-10d27c17] {
  display: grid;
  grid-template-columns: minmax(100px, 0.8fr) minmax(120px, 1.2fr) minmax(240px, 1fr) minmax(100px, 0.8fr);
  gap: 0.5rem;
  padding: 0.5rem 1.25rem;
  font-size: 0.8rem;
  align-items: center;
  border-bottom: 1px solid var(--border-subtle);
}
.audit-detail-item[data-v-10d27c17]:last-child {
  border-bottom: none;
}
.audit-detail-item__company[data-v-10d27c17] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  min-width: 0;
}
.audit-detail-item__favicon[data-v-10d27c17] {
  width: 16px;
  height: 16px;
  object-fit: contain;
  border-radius: 2px;
  flex-shrink: 0;
}
.audit-detail-item__favicon-icon[data-v-10d27c17] {
  width: 14px;
  font-size: 12px;
  color: var(--text-tertiary);
  flex-shrink: 0;
  text-align: center;
}
.audit-detail-item__company-name[data-v-10d27c17] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-secondary);
}
.audit-detail-item__product[data-v-10d27c17] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
  color: var(--text-primary);
}
.audit-detail-item__product--clickable[data-v-10d27c17] {
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: transparent;
  transition: text-decoration-color 0.15s ease;
}
.audit-detail-item__product--clickable[data-v-10d27c17]:hover {
  text-decoration-color: var(--primary-color);
  color: var(--primary-color);
}
.audit-detail-item__detail[data-v-10d27c17] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  min-width: 0;
}
.audit-detail-item__value[data-v-10d27c17] {
  font-family: var(--font-mono, monospace);
  font-size: 0.75rem;
  color: var(--color-danger);
  overflow-wrap: break-word;
}
.audit-detail-item__message[data-v-10d27c17] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.audit-detail-modal__pagination[data-v-10d27c17] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 0.75rem 1.25rem;
  border-top: 1px solid var(--border-color);
  flex-shrink: 0;
}
.audit-detail-modal__page-info[data-v-10d27c17] {
  font-size: 0.85rem;
  color: var(--text-secondary);
}
@media (max-width: 768px) {
.audit-detail-modal[data-v-10d27c17] {
    max-width: 100%;
    max-height: 90vh;
    margin: 0 0.5rem;
    border-radius: 8px;
}
.audit-detail-item[data-v-10d27c17] {
    grid-template-columns: 1fr;
    gap: 0.25rem;
    padding: 0.625rem 1rem;
}
.audit-detail-item__detail[data-v-10d27c17] {
    flex-wrap: wrap;
}
}

.diag-overlay[data-v-d65ef486] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
}
.diag-modal[data-v-d65ef486] {
  width: 100%;
  max-width: 720px;
  max-height: 80vh;
  margin: 0 1rem;
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ─── Header ─── */
.diag-modal__header[data-v-d65ef486] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.875rem 1.25rem;
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}
.diag-modal__title-area[data-v-d65ef486] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  flex: 1;
}
.diag-modal__favicon[data-v-d65ef486] {
  width: 20px;
  height: 20px;
  object-fit: contain;
  border-radius: 3px;
  flex-shrink: 0;
}
.diag-modal__favicon-icon[data-v-d65ef486] {
  font-size: 14px;
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.diag-modal__title[data-v-d65ef486] {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.diag-modal__company-badge[data-v-d65ef486] {
  font-size: 0.7rem;
  font-weight: 500;
  padding: 0.125rem 0.5rem;
  border-radius: 10px;
  background: var(--bg-hover);
  color: var(--text-secondary);
  flex-shrink: 0;
  white-space: nowrap;
}
.diag-modal__actions[data-v-d65ef486] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.diag-modal__link-btn[data-v-d65ef486] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.625rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--primary-color);
  border: 1px solid var(--primary-color);
  border-radius: 4px;
  text-decoration: none;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.diag-modal__link-btn[data-v-d65ef486]:hover {
  background: var(--primary-color);
  color: var(--color-white);
}

/* ─── Body ─── */
.diag-modal__body[data-v-d65ef486] {
  flex: 1;
  overflow-y: auto;
  padding: 0.75rem 0;
}
.diag-modal__loading[data-v-d65ef486],
.diag-modal__error[data-v-d65ef486] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 3rem;
  font-size: 1rem;
  color: var(--text-tertiary);
}
.diag-modal__error[data-v-d65ef486] {
  color: var(--color-danger);
  font-size: 0.85rem;
}

/* ─── Sections ─── */
.diag-section[data-v-d65ef486] {
  border-bottom: 1px solid var(--border-subtle);
}
.diag-section[data-v-d65ef486]:last-child {
  border-bottom: none;
}
.diag-section__toggle[data-v-d65ef486] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.625rem 1.25rem;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
  transition: background 0.15s ease;
}
.diag-section__toggle[data-v-d65ef486]:hover {
  background: var(--bg-hover);
}
.diag-section__chevron[data-v-d65ef486] {
  font-size: 0.65rem;
  color: var(--text-tertiary);
  transition: transform 0.2s ease;
  width: 0.75rem;
  text-align: center;
}
.diag-section__chevron--open[data-v-d65ef486] {
  transform: rotate(90deg);
}
.diag-section__count[data-v-d65ef486] {
  font-weight: 400;
  color: var(--text-tertiary);
  font-size: 0.8rem;
}
.diag-section__content[data-v-d65ef486] {
  padding: 0 1.25rem 0.75rem;
}
.diag-section__empty[data-v-d65ef486] {
  font-size: 0.8rem;
  color: var(--text-tertiary);
  padding: 0.5rem 0;
}
.diag-section__empty--ok[data-v-d65ef486] {
  color: var(--success-color);
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

/* ─── Product Info Grid ─── */
.diag-info-grid[data-v-d65ef486] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem 1.5rem;
}
.diag-info-item[data-v-d65ef486] {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
  font-size: 0.8rem;
}
.diag-info-item__label[data-v-d65ef486] {
  color: var(--text-tertiary);
  flex-shrink: 0;
  white-space: nowrap;
}
.diag-info-item__label[data-v-d65ef486]::after {
  content: ':';
}
.diag-info-item__value[data-v-d65ef486] {
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.diag-info-remarks[data-v-d65ef486] {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
  font-size: 0.8rem;
  margin-top: 0.375rem;
}

/* ─── Revisions ─── */
.diag-revision[data-v-d65ef486] {
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border-subtle);
}
.diag-revision[data-v-d65ef486]:last-child {
  border-bottom: none;
}
.diag-revision--no-docs[data-v-d65ef486] {
  background: var(--surface-danger-soft);
  border-left: 3px solid var(--color-danger);
  padding-left: calc(0.5rem - 3px);
  border-radius: 2px;
}
.diag-revision__header[data-v-d65ef486] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  margin-bottom: 0.375rem;
}
.diag-revision__num[data-v-d65ef486] {
  font-weight: 700;
  color: var(--text-tertiary);
  font-size: 0.75rem;
  min-width: 1.5rem;
}
.diag-revision__dates[data-v-d65ef486] {
  color: var(--text-primary);
  font-family: var(--font-mono, monospace);
  font-size: 0.75rem;
}
.diag-revision__status[data-v-d65ef486] {
  font-size: 0.65rem;
  font-weight: 600;
  padding: 0.0625rem 0.375rem;
  border-radius: 3px;
}
.diag-revision__status--active[data-v-d65ef486] {
  background: var(--surface-success-soft);
  color: var(--color-success);
}
.diag-revision__status--ended[data-v-d65ef486] {
  background: var(--surface-muted);
  color: var(--text-tertiary);
}
.diag-revision__docs[data-v-d65ef486] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  padding-left: 2rem;
}
.diag-revision__no-docs[data-v-d65ef486] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  font-style: italic;
}
.diag-revision__no-docs--warn[data-v-d65ef486] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--color-danger);
  font-style: normal;
  font-weight: 500;
}
.diag-doc[data-v-d65ef486] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.7rem;
  padding: 0.125rem 0.375rem;
  border-radius: 3px;
  background: var(--surface-success-soft);
  color: var(--color-success);
}
.diag-doc--error[data-v-d65ef486] {
  background: var(--surface-danger-soft);
  color: var(--color-danger);
}
.diag-doc__icon[data-v-d65ef486] {
  font-size: 0.6rem;
}
.diag-revision__error[data-v-d65ef486] {
  display: flex;
  align-items: flex-start;
  gap: 0.375rem;
  font-size: 0.7rem;
  color: var(--color-danger);
  padding: 0.25rem 0 0 2rem;
}
.diag-revision__error i[data-v-d65ef486] {
  font-size: 0.65rem;
  margin-top: 0.125rem;
  flex-shrink: 0;
}

/* ─── Issues ─── */
.diag-issue[data-v-d65ef486] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0;
  font-size: 0.8rem;
  border-bottom: 1px solid var(--border-subtle);
}
.diag-issue[data-v-d65ef486]:last-child {
  border-bottom: none;
}
.diag-issue__severity[data-v-d65ef486] {
  font-size: 0.6rem;
  font-weight: 700;
  padding: 0.0625rem 0.375rem;
  border-radius: 3px;
  flex-shrink: 0;
}
.diag-issue__severity--high[data-v-d65ef486] {
  background: var(--surface-danger-soft);
  color: var(--color-danger);
}
.diag-issue__severity--medium[data-v-d65ef486] {
  background: var(--surface-warning-soft);
  color: var(--color-warning);
}
.diag-issue__severity--low[data-v-d65ef486] {
  background: var(--surface-info-soft);
  color: var(--color-info);
}
.diag-issue__field[data-v-d65ef486] {
  font-family: var(--font-mono, monospace);
  font-size: 0.75rem;
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.diag-issue__value[data-v-d65ef486] {
  font-family: var(--font-mono, monospace);
  font-size: 0.75rem;
  color: var(--color-danger);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.diag-issue__message[data-v-d65ef486] {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-left: auto;
  flex-shrink: 0;
}
@media (max-width: 768px) {
.diag-modal[data-v-d65ef486] {
    max-width: 100%;
    max-height: 90vh;
    margin: 0 0.5rem;
    border-radius: 8px;
}
.diag-info-grid[data-v-d65ef486] {
    grid-template-columns: 1fr;
}
.diag-issue[data-v-d65ef486] {
    flex-wrap: wrap;
    gap: 0.25rem;
}
.diag-issue__message[data-v-d65ef486] {
    margin-left: 0;
    width: 100%;
}
}

.audit-view[data-v-a835b2c5] {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: auto;
  padding: 0;
  gap: 1rem;
}

/* ─── Empty / Loading / Error states ─── */
.audit-view__empty[data-v-a835b2c5],
.audit-view__loading[data-v-a835b2c5] {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  min-height: 300px;
}
.audit-view__empty-content[data-v-a835b2c5],
.audit-view__loading-content[data-v-a835b2c5] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  text-align: center;
  max-width: 400px;
}
.audit-view__empty-icon[data-v-a835b2c5],
.audit-view__loading-icon[data-v-a835b2c5] {
  font-size: 2.5rem;
  color: var(--text-tertiary);
  margin-bottom: 0.5rem;
}
.audit-view__empty-icon--error[data-v-a835b2c5] {
  color: var(--color-danger);
}
.audit-view__empty-text[data-v-a835b2c5],
.audit-view__loading-text[data-v-a835b2c5] {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0;
}
.audit-view__empty-sub[data-v-a835b2c5],
.audit-view__loading-sub[data-v-a835b2c5] {
  font-size: 0.85rem;
  color: var(--text-secondary);
  margin: 0;
}
.audit-view__run-btn[data-v-a835b2c5] {
  margin-top: 0.5rem;
}

/* ─── Results ─── */
.audit-view__results[data-v-a835b2c5] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.audit-view__header[data-v-a835b2c5] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  position: sticky;
  top: 0;
  z-index: 10;
}
.audit-view__meta[data-v-a835b2c5] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--text-secondary);
}
.audit-view__timestamp i[data-v-a835b2c5] {
  margin-right: 0.375rem;
  color: var(--text-tertiary);
}
.audit-view__duration[data-v-a835b2c5] {
  color: var(--text-tertiary);
  font-size: 0.8rem;
}


/* ─── No issues ─── */
.audit-view__no-issues[data-v-a835b2c5] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 3rem 1rem;
  text-align: center;
}
.audit-view__no-issues-icon[data-v-a835b2c5] {
  font-size: 2.5rem;
  color: var(--color-success);
}
.audit-view__no-issues p[data-v-a835b2c5] {
  font-size: 1rem;
  font-weight: 500;
  color: var(--text-primary);
  margin: 0;
}

/* ─── Summary cards ─── */
.audit-view__summary[data-v-a835b2c5] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
}
.summary-card[data-v-a835b2c5] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: 0.75rem;
  border-radius: 8px;
  border: 1px solid var(--border-color);
  cursor: pointer;
  transition: all 0.15s ease;
  user-select: none;
}
.summary-card[data-v-a835b2c5]:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}
.summary-card__label[data-v-a835b2c5] {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.summary-card__value[data-v-a835b2c5] {
  font-size: 1.25rem;
  font-weight: 700;
}
.summary-card__percent[data-v-a835b2c5] {
  font-size: 0.7rem;
  color: var(--text-tertiary);
  font-weight: 500;
}
.summary-card--high[data-v-a835b2c5] { border-color: var(--color-danger); background: var(--surface-danger-soft);
}
.summary-card--high .summary-card__label[data-v-a835b2c5] { color: var(--color-danger);
}
.summary-card--high .summary-card__value[data-v-a835b2c5] { color: var(--color-danger);
}
.summary-card--medium[data-v-a835b2c5] { border-color: var(--color-warning); background: var(--surface-warning-soft);
}
.summary-card--medium .summary-card__label[data-v-a835b2c5] { color: var(--color-warning);
}
.summary-card--medium .summary-card__value[data-v-a835b2c5] { color: var(--color-warning);
}
.summary-card--low[data-v-a835b2c5] { border-color: var(--color-info); background: var(--surface-info-soft);
}
.summary-card--low .summary-card__label[data-v-a835b2c5] { color: var(--color-info);
}
.summary-card--low .summary-card__value[data-v-a835b2c5] { color: var(--color-info);
}
.summary-card--total[data-v-a835b2c5] { border-color: var(--border-color); background: var(--surface-color);
}
.summary-card--total .summary-card__label[data-v-a835b2c5] { color: var(--text-secondary);
}
.summary-card--total .summary-card__value[data-v-a835b2c5] { color: var(--text-primary);
}

/* ─── Filter bar ─── */
.audit-view__filter-bar[data-v-a835b2c5] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  background: var(--surface-hover);
  border-radius: 4px;
  font-size: 0.8rem;
  color: var(--text-secondary);
}

/* ─── Content ─── */
.audit-view__content[data-v-a835b2c5] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* ─── Categories ─── */
.audit-view__categories[data-v-a835b2c5] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
@media (max-width: 768px) {
.audit-view__summary[data-v-a835b2c5] {
    grid-template-columns: repeat(2, 1fr);
}
.audit-view__header[data-v-a835b2c5] {
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-start;
}
.audit-view__rerun-btn[data-v-a835b2c5] {
    align-self: flex-end;
}
}
.page[data-v-ca0bd3a6] {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex: 1 1 auto;
  min-height: 0;
}
.page__header h2[data-v-ca0bd3a6] {
  margin: 0;
}
.page__desc[data-v-ca0bd3a6] {
  margin: 0.5rem 0 0;
  color: var(--text-secondary);
}
.page__card[data-v-ca0bd3a6] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.25rem;
}
@media (max-width: 768px) {
.page__desc[data-v-ca0bd3a6] {
    font-size: 0.9rem;
    line-height: 1.5;
    margin-top: 0.25rem;
}
}
@media (max-width: 480px) {
.page__card[data-v-ca0bd3a6] {
    padding: 0.5rem;
}
}
.product-page-root[data-v-ca0bd3a6] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  gap: 0 !important; /* .page 클래스의 gap: 1.5rem 오버라이드 */
  /* 부모(app-shell__content)의 높이를 그대로 채우되,
     여백은 부모 컨테이너의 padding에만 의존하도록 별도 padding은 두지 않는다. */
}
.product-page-root > .page__header[data-v-ca0bd3a6] {
  margin-top: 0;
}
.product-page-root .page__desc[data-v-ca0bd3a6] {
  margin-top: 0;
}
.product-page[data-v-ca0bd3a6] {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
  flex: 1 1 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.product-page-root .page__card[data-v-ca0bd3a6] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0 !important;
  background: transparent;
  border: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.product-page__tabs[data-v-ca0bd3a6] {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.product-page__tab-header[data-v-ca0bd3a6] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
}
.product-page__tab-panels[data-v-ca0bd3a6] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: var(--surface-color);
  overflow: hidden;
  position: relative;
  padding: 0.75rem;
  touch-action: pan-y pinch-zoom; /* 수직 스크롤은 허용, 수평 스와이프는 제어 */
}
.product-page__tab-panel[data-v-ca0bd3a6] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
  position: relative;
}
.product-page__tab-header-right[data-v-ca0bd3a6] {
  display: flex;
  align-items: center;
  padding-right: 0.75rem;
  gap: 0.5rem;
  flex-shrink: 0;
}

/* 세그먼트 컨트롤 스타일 */
.segmented-control[data-v-ca0bd3a6] {
  position: relative;
  display: inline-flex;
  align-items: stretch;
  background-color: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 6px;
  padding: 2px;
  gap: 0;
  user-select: none;
  overflow: hidden;
  height: 34px;
}
.segmented-control__thumb[data-v-ca0bd3a6] {
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 2px;
  right: calc(50% + 2px);
  background-color: var(--primary-color);
  border-radius: 4px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 0;
}
.segmented-control__thumb--right[data-v-ca0bd3a6] {
  left: calc(50% + 2px);
  right: 2px;
}
.segmented-control__option[data-v-ca0bd3a6] {
  position: relative;
  z-index: 1;
  flex: 1;
  padding: 0.375rem 1rem;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.8125rem;
  font-weight: 500;
  cursor: pointer;
  border-radius: 4px;
  transition: color 0.2s ease, border-color 0.2s ease;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; /* 개정보기/상품보기 텍스트가 줄바꿈되지 않고, 공간이 부족할 때 말줄임표로 축약되도록 처리 */
  min-width: 0;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.segmented-control__option--active[data-v-ca0bd3a6] {
  color: var(--color-white);
  font-weight: 600;
  border-color: transparent;
}
.segmented-control__option[data-v-ca0bd3a6]:hover:not(.segmented-control__option--active) {
  color: var(--text-primary);
  border-color: var(--primary-color);
}
@media (max-width: 480px) {
.product-page__tab-panels[data-v-ca0bd3a6] {
    padding: 0.5rem;
}
}
@media (max-width: 480px) {
.product-page__tab-panels[data-v-ca0bd3a6] {
    padding: 0.25rem;
}
.segmented-control__option[data-v-ca0bd3a6] {
    padding: 0.375rem 0.5rem;
}
}

/* 개정/상품보기 스위치는 모든 해상도에서 탭과 같은 한 줄에 유지한다. */

.documents-grid-card[data-v-797c29a3] {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px 18px;
  position: relative;
  border-radius: 8px;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.documents-grid-card[data-v-797c29a3]:hover,
.documents-grid-card[data-v-797c29a3]:focus-within {
  border-color: var(--primary-color);
  box-shadow: var(--shadow-lg);
  transform: translateY(-1px);
}
.document-row[data-v-797c29a3] {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  min-width: 0;
  flex-wrap: wrap;
}
.document-row-top[data-v-797c29a3] {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
  width: 100%;
}
.document-title-line[data-v-797c29a3] {
  display: flex;
  align-items: center;
  gap: 8px;
  row-gap: 4px;
  flex-wrap: wrap;
  font-size: 15px;
  font-weight: 700;
  color: var(--text-primary);
  min-width: 0;
  flex: 1 1 auto;
}
.document-title-side[data-v-797c29a3] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 1 auto;
  min-width: 0;
  flex-wrap: wrap;
}
.document-title-side .document-product-name[data-v-797c29a3] {
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.document-title-side .document-title-badge[data-v-797c29a3] {
  white-space: normal;
  flex-shrink: 0;
}
.document-product-name[data-v-797c29a3] {
  display: inline-flex;
  align-items: center;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-secondary);
  gap: 6px;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  min-width: 0;
  flex: 1 1 auto;
  line-height: 1.5;
}
.document-product-name[data-v-797c29a3] .search-highlight {
  font-weight: inherit;
  font-size: inherit;
}
.document-open-btn[data-v-797c29a3] {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 0;
  border: none;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  min-width: 0;
  flex: 0 1 auto;
  flex-wrap: wrap;
}
.document-open-btn[data-v-797c29a3]:hover,
.document-open-btn[data-v-797c29a3]:focus {
  color: var(--primary-color);
  outline: none;
}
.document-title-badge[data-v-797c29a3] {
  flex-shrink: 0;
}
.document-title-text[data-v-797c29a3] {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  line-clamp: 2;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-height: 1.5;
  white-space: normal;
  word-break: break-word;
}
.document-period[data-v-797c29a3] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
  white-space: nowrap;
  justify-content: flex-end;
  text-align: right;
  flex-shrink: 0;
  margin-left: auto;
  flex: 0 0 auto;
  min-width: max-content;
}
.document-period i[data-v-797c29a3] {
  color: currentColor;
}
.document-period.document-period-active[data-v-797c29a3] {
  color: var(--primary-color);
}
.document-period.document-period-ended[data-v-797c29a3] {
  color: var(--text-secondary);
}
.document-period.document-period-on-sale[data-v-797c29a3] {
  color: var(--color-success-hover);
}
.document-period.document-period-off-sale[data-v-797c29a3] {
  color: var(--text-secondary);
}
.document-row-bottom[data-v-797c29a3] {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 12px;
  width: 100%;
  flex-wrap: wrap;
  padding-top: 10px;
  border-top: 1px solid var(--border-subtle);
}
.document-meta-group[data-v-797c29a3] {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-tertiary);
}
.document-company[data-v-797c29a3] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
  min-width: 0;
}
.company-favicon[data-v-797c29a3] {
  width: 16px;
  height: 16px;
  object-fit: contain;
  flex-shrink: 0;
}
.document-company-icon[data-v-797c29a3] {
  font-size: 13px;
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.document-company-name[data-v-797c29a3] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.document-id-badge[data-v-797c29a3] {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  color: var(--text-tertiary);
  background: var(--surface-muted);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  font-family: 'Courier New', monospace;
  white-space: nowrap;
  border: 1px solid var(--border-subtle);
  line-height: 1.2;
}
.document-status-badge[data-v-797c29a3] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  border: 1px solid var(--border-subtle);
  color: var(--text-secondary);
  background: var(--surface-muted);
  line-height: 1.2;
}
.document-status-badge.document-status-on[data-v-797c29a3] {
  background: var(--surface-success-soft);
  border-color: var(--surface-primary-soft);
  color: var(--color-success-hover);
}
.document-status-badge.document-status-off[data-v-797c29a3] {
  background: var(--surface-muted);
  border-color: var(--border-subtle);
  color: var(--text-secondary);
}
.document-meta[data-v-797c29a3] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.document-meta-item[data-v-797c29a3] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  background: var(--surface-muted);
  color: var(--text-secondary);
  border: 1px solid var(--border-subtle);
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  flex-shrink: 0;
  white-space: nowrap;
}
.document-meta-item i[data-v-797c29a3] {
  font-size: 11px;
  color: currentColor;
}
.document-meta-item.document-meta-file[data-v-797c29a3] {
  background: var(--surface-info-soft);
  border-color: var(--surface-info-soft);
  color: var(--color-info-hover);
}
.document-meta-item.document-meta-download[data-v-797c29a3] {
  background: var(--surface-success-soft);
  border-color: var(--surface-success-soft);
  color: var(--color-success-hover);
}
.document-meta-item.document-meta-service[data-v-797c29a3] {
  background: var(--surface-warning-soft);
  border-color: var(--surface-warning-soft);
  color: var(--color-warning-hover);
}
.document-meta-item.document-meta-product-type[data-v-797c29a3] {
  background: transparent;
  border-color: var(--surface-purple-soft);
  color: var(--color-purple);
}
.document-meta-item.document-meta-etc[data-v-797c29a3] {
  font-size: 11px;
  color: var(--color-purple);
  background: var(--surface-purple-soft);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  border-color: var(--surface-purple-soft);
}
.document-meta-item.document-meta-extension[data-v-797c29a3] {
  background: var(--surface-indigo-soft);
  border-color: var(--surface-indigo-soft);
  color: var(--color-indigo);
}
.document-meta-item.document-meta-error[data-v-797c29a3] {
  background: var(--surface-danger-soft);
  border-color: var(--surface-danger-soft);
  color: var(--color-danger-hover);
}
.document-version[data-v-797c29a3] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  color: var(--color-info-hover);
  background: var(--surface-info-soft);
  border: 1px solid var(--surface-info-soft);
  padding: 2px 8px;
  border-radius: 4px;
  line-height: 1.2;
  white-space: nowrap;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.document-version i[data-v-797c29a3] {
  font-size: 11px;
  color: currentColor;
}

/* 하일라이팅 스타일은 전역 스타일(search-highlight.css)에서 관리 */
@media (prefers-color-scheme: dark) {
.documents-grid-card[data-v-797c29a3] {
    background: var(--surface-color);
    border-color: var(--border-color);
}
.documents-grid-card[data-v-797c29a3]:hover,
  .documents-grid-card[data-v-797c29a3]:focus-within {
    border-color: var(--primary-color);
    box-shadow: var(--shadow-sm);
}
.document-meta-group[data-v-797c29a3] {
    color: var(--text-secondary);
}
.document-product-name[data-v-797c29a3] {
    color: var(--text-secondary);
}
.document-period.document-period-active[data-v-797c29a3] {
    color: var(--primary-color);
}
.document-period.document-period-ended[data-v-797c29a3] {
    color: var(--text-secondary);
}
.document-period.document-period-on-sale[data-v-797c29a3] {
    color: var(--color-success);
}
.document-period.document-period-off-sale[data-v-797c29a3] {
    color: var(--text-secondary);
}
.document-row-bottom[data-v-797c29a3] {
    border-top: 1px solid var(--border-subtle);
}
.document-company-icon[data-v-797c29a3] {
    color: var(--text-tertiary);
}
.document-open-btn[data-v-797c29a3]:hover,
  .document-open-btn[data-v-797c29a3]:focus {
    color: var(--primary-color);
}
.document-title-line[data-v-797c29a3] {
    color: var(--text-primary);
}
.document-status-badge[data-v-797c29a3] {
    background: var(--surface-muted);
    border-color: var(--border-subtle);
    color: var(--text-primary);
}
.document-status-badge.document-status-on[data-v-797c29a3] {
    background: var(--surface-success-soft);
    border-color: var(--surface-success-soft);
    color: var(--color-success);
}
.document-status-badge.document-status-off[data-v-797c29a3] {
    background: var(--surface-muted);
    border-color: var(--border-subtle);
    color: var(--text-secondary);
}
.document-meta-item[data-v-797c29a3] {
    background: var(--surface-muted);
    border-color: var(--border-subtle);
    color: var(--text-primary);
}
.document-meta-item.document-meta-file[data-v-797c29a3] {
    background: var(--surface-info-soft);
    border-color: var(--surface-info-soft);
    color: var(--color-info);
}
.document-meta-item.document-meta-download[data-v-797c29a3] {
    background: var(--surface-success-soft);
    border-color: var(--surface-success-soft);
    color: var(--color-success);
}
.document-meta-item.document-meta-service[data-v-797c29a3] {
    background: var(--surface-warning-soft);
    border-color: var(--surface-warning-soft);
    color: var(--color-warning);
}
.document-meta-item.document-meta-product-type[data-v-797c29a3] {
    background: transparent;
    border-color: var(--surface-purple-soft);
    color: var(--color-purple);
}
.document-meta-item.document-meta-etc[data-v-797c29a3] {
    color: var(--color-purple);
    background: var(--surface-purple-soft);
    border-color: var(--surface-purple-soft);
}
.document-meta-item.document-meta-extension[data-v-797c29a3] {
    background: var(--surface-indigo-soft);
    border-color: var(--surface-indigo-soft);
    color: var(--color-indigo);
}
.document-meta-item.document-meta-error[data-v-797c29a3] {
    background: var(--surface-danger-soft);
    border-color: var(--surface-danger-soft);
    color: var(--color-danger);
}
.document-version[data-v-797c29a3] {
    color: var(--color-info);
    background: var(--surface-info-soft);
    border-color: var(--surface-info-soft);
}
}
html[data-theme='dark'] .documents-grid-card[data-v-797c29a3],
body[data-theme='dark'] .documents-grid-card[data-v-797c29a3] {
  background: var(--surface-color);
  border-color: var(--border-color);
}
html[data-theme='dark'] .documents-grid-card[data-v-797c29a3]:hover,
html[data-theme='dark'] .documents-grid-card[data-v-797c29a3]:focus-within,
body[data-theme='dark'] .documents-grid-card[data-v-797c29a3]:hover,
body[data-theme='dark'] .documents-grid-card[data-v-797c29a3]:focus-within {
  border-color: var(--primary-color);
  box-shadow: var(--shadow-sm);
}
html[data-theme='dark'] .document-meta-group[data-v-797c29a3],
body[data-theme='dark'] .document-meta-group[data-v-797c29a3] {
  color: var(--text-secondary);
}
html[data-theme='dark'] .document-product-name[data-v-797c29a3],
body[data-theme='dark'] .document-product-name[data-v-797c29a3] {
  color: var(--text-secondary);
}
html[data-theme='dark'] .document-period.document-period-active[data-v-797c29a3],
body[data-theme='dark'] .document-period.document-period-active[data-v-797c29a3] {
  color: var(--primary-color);
}
html[data-theme='dark'] .document-period.document-period-ended[data-v-797c29a3],
body[data-theme='dark'] .document-period.document-period-ended[data-v-797c29a3] {
  color: var(--text-secondary);
}
html[data-theme='dark'] .document-period.document-period-on-sale[data-v-797c29a3],
body[data-theme='dark'] .document-period.document-period-on-sale[data-v-797c29a3] {
  color: var(--color-success);
}
html[data-theme='dark'] .document-period.document-period-off-sale[data-v-797c29a3],
body[data-theme='dark'] .document-period.document-period-off-sale[data-v-797c29a3] {
  color: var(--text-secondary);
}
html[data-theme='dark'] .document-row-bottom[data-v-797c29a3],
body[data-theme='dark'] .document-row-bottom[data-v-797c29a3] {
  border-top: 1px solid var(--border-subtle);
}
html[data-theme='dark'] .document-company-icon[data-v-797c29a3],
body[data-theme='dark'] .document-company-icon[data-v-797c29a3] {
  color: var(--text-tertiary);
}
html[data-theme='dark'] .document-open-btn[data-v-797c29a3]:hover,
html[data-theme='dark'] .document-open-btn[data-v-797c29a3]:focus,
body[data-theme='dark'] .document-open-btn[data-v-797c29a3]:hover,
body[data-theme='dark'] .document-open-btn[data-v-797c29a3]:focus {
  color: var(--primary-color);
}
html[data-theme='dark'] .document-title-line[data-v-797c29a3],
body[data-theme='dark'] .document-title-line[data-v-797c29a3] {
  color: var(--text-primary);
}
html[data-theme='dark'] .document-id-badge[data-v-797c29a3],
body[data-theme='dark'] .document-id-badge[data-v-797c29a3] {
  color: var(--text-tertiary);
  background: var(--surface-muted);
  border-color: var(--border-subtle);
}
html[data-theme='dark'] .document-status-badge[data-v-797c29a3],
body[data-theme='dark'] .document-status-badge[data-v-797c29a3] {
  background: var(--surface-muted);
  border-color: var(--border-subtle);
  color: var(--text-primary);
}
html[data-theme='dark'] .document-status-badge.document-status-on[data-v-797c29a3],
body[data-theme='dark'] .document-status-badge.document-status-on[data-v-797c29a3] {
  background: var(--surface-success-soft);
  border-color: var(--surface-success-soft);
  color: var(--color-success);
}
html[data-theme='dark'] .document-status-badge.document-status-off[data-v-797c29a3],
body[data-theme='dark'] .document-status-badge.document-status-off[data-v-797c29a3] {
  background: var(--surface-muted);
  border-color: var(--border-subtle);
  color: var(--text-secondary);
}
html[data-theme='dark'] .document-meta-item[data-v-797c29a3],
body[data-theme='dark'] .document-meta-item[data-v-797c29a3] {
  background: var(--surface-muted);
  border-color: var(--border-subtle);
  color: var(--text-primary);
}
html[data-theme='dark'] .document-meta-item.document-meta-file[data-v-797c29a3],
body[data-theme='dark'] .document-meta-item.document-meta-file[data-v-797c29a3] {
  background: var(--surface-info-soft);
  border-color: var(--surface-info-soft);
  color: var(--color-info);
}
html[data-theme='dark'] .document-meta-item.document-meta-download[data-v-797c29a3],
body[data-theme='dark'] .document-meta-item.document-meta-download[data-v-797c29a3] {
  background: var(--surface-success-soft);
  border-color: var(--surface-success-soft);
  color: var(--color-success);
}
html[data-theme='dark'] .document-meta-item.document-meta-service[data-v-797c29a3],
body[data-theme='dark'] .document-meta-item.document-meta-service[data-v-797c29a3] {
  background: var(--surface-warning-soft);
  border-color: var(--surface-warning-soft);
  color: var(--color-warning);
}
html[data-theme='dark'] .document-meta-item.document-meta-product-type[data-v-797c29a3],
body[data-theme='dark'] .document-meta-item.document-meta-product-type[data-v-797c29a3] {
  background: transparent;
  border-color: var(--surface-purple-soft);
  color: var(--color-purple);
}
html[data-theme='dark'] .document-meta-item.document-meta-etc[data-v-797c29a3],
body[data-theme='dark'] .document-meta-item.document-meta-etc[data-v-797c29a3] {
  color: var(--color-purple);
  background: var(--surface-purple-soft);
  border-color: var(--surface-purple-soft);
}
html[data-theme='dark'] .document-meta-item.document-meta-extension[data-v-797c29a3],
body[data-theme='dark'] .document-meta-item.document-meta-extension[data-v-797c29a3] {
  background: var(--surface-indigo-soft);
  border-color: var(--surface-indigo-soft);
  color: var(--color-indigo);
}
html[data-theme='dark'] .document-meta-item.document-meta-error[data-v-797c29a3],
body[data-theme='dark'] .document-meta-item.document-meta-error[data-v-797c29a3] {
  background: var(--surface-danger-soft);
  border-color: var(--surface-danger-soft);
  color: var(--color-danger);
}
html[data-theme='dark'] .document-version[data-v-797c29a3],
body[data-theme='dark'] .document-version[data-v-797c29a3] {
  color: var(--color-info);
  background: var(--surface-info-soft);
  border-color: var(--surface-info-soft);
}

/* 라이트 테마 명시적 스타일 (아이패드/아이폰 대응) */
html[data-theme='light'] .documents-grid-card[data-v-797c29a3],
body[data-theme='light'] .documents-grid-card[data-v-797c29a3] {
  background: var(--surface-color);
  border-color: var(--border-color);
}
html[data-theme='light'] .documents-grid-card[data-v-797c29a3]:hover,
html[data-theme='light'] .documents-grid-card[data-v-797c29a3]:focus-within,
body[data-theme='light'] .documents-grid-card[data-v-797c29a3]:hover,
body[data-theme='light'] .documents-grid-card[data-v-797c29a3]:focus-within {
  border-color: var(--primary-color);
  box-shadow: var(--shadow-lg);
}
html[data-theme='light'] .document-meta-group[data-v-797c29a3],
body[data-theme='light'] .document-meta-group[data-v-797c29a3] {
  color: var(--text-tertiary);
}
html[data-theme='light'] .document-product-name[data-v-797c29a3],
body[data-theme='light'] .document-product-name[data-v-797c29a3] {
  color: var(--text-secondary);
}
html[data-theme='light'] .document-period.document-period-active[data-v-797c29a3],
body[data-theme='light'] .document-period.document-period-active[data-v-797c29a3] {
  color: var(--primary-color);
}
html[data-theme='light'] .document-period.document-period-ended[data-v-797c29a3],
body[data-theme='light'] .document-period.document-period-ended[data-v-797c29a3] {
  color: var(--text-secondary);
}
html[data-theme='light'] .document-period.document-period-on-sale[data-v-797c29a3],
body[data-theme='light'] .document-period.document-period-on-sale[data-v-797c29a3] {
  color: var(--color-success-hover);
}
html[data-theme='light'] .document-period.document-period-off-sale[data-v-797c29a3],
body[data-theme='light'] .document-period.document-period-off-sale[data-v-797c29a3] {
  color: var(--text-secondary);
}
html[data-theme='light'] .document-row-bottom[data-v-797c29a3],
body[data-theme='light'] .document-row-bottom[data-v-797c29a3] {
  border-top: 1px solid var(--border-subtle);
}
html[data-theme='light'] .document-company-icon[data-v-797c29a3],
body[data-theme='light'] .document-company-icon[data-v-797c29a3] {
  color: var(--text-tertiary);
}
html[data-theme='light'] .document-open-btn[data-v-797c29a3]:hover,
html[data-theme='light'] .document-open-btn[data-v-797c29a3]:focus,
body[data-theme='light'] .document-open-btn[data-v-797c29a3]:hover,
body[data-theme='light'] .document-open-btn[data-v-797c29a3]:focus {
  color: var(--primary-color);
}
html[data-theme='light'] .document-title-line[data-v-797c29a3],
body[data-theme='light'] .document-title-line[data-v-797c29a3] {
  color: var(--text-primary);
}
html[data-theme='light'] .document-id-badge[data-v-797c29a3],
body[data-theme='light'] .document-id-badge[data-v-797c29a3] {
  color: var(--text-tertiary);
  background: var(--surface-muted);
  border-color: var(--border-subtle);
}
html[data-theme='light'] .document-status-badge[data-v-797c29a3],
body[data-theme='light'] .document-status-badge[data-v-797c29a3] {
  background: var(--surface-muted);
  border-color: var(--border-subtle);
  color: var(--text-secondary);
}
html[data-theme='light'] .document-status-badge.document-status-on[data-v-797c29a3],
body[data-theme='light'] .document-status-badge.document-status-on[data-v-797c29a3] {
  background: var(--surface-success-soft);
  border-color: var(--surface-primary-soft);
  color: var(--color-success-hover);
}
html[data-theme='light'] .document-status-badge.document-status-off[data-v-797c29a3],
body[data-theme='light'] .document-status-badge.document-status-off[data-v-797c29a3] {
  background: var(--surface-muted);
  border-color: var(--border-subtle);
  color: var(--text-secondary);
}
html[data-theme='light'] .document-meta-item[data-v-797c29a3],
body[data-theme='light'] .document-meta-item[data-v-797c29a3] {
  background: var(--surface-muted);
  border-color: var(--border-subtle);
  color: var(--text-secondary);
}
html[data-theme='light'] .document-meta-item.document-meta-file[data-v-797c29a3],
body[data-theme='light'] .document-meta-item.document-meta-file[data-v-797c29a3] {
  background: var(--surface-info-soft);
  border-color: var(--surface-info-soft);
  color: var(--color-info-hover);
}
html[data-theme='light'] .document-meta-item.document-meta-download[data-v-797c29a3],
body[data-theme='light'] .document-meta-item.document-meta-download[data-v-797c29a3] {
  background: var(--surface-success-soft);
  border-color: var(--surface-success-soft);
  color: var(--color-success-hover);
}
html[data-theme='light'] .document-meta-item.document-meta-service[data-v-797c29a3],
body[data-theme='light'] .document-meta-item.document-meta-service[data-v-797c29a3] {
  background: var(--surface-warning-soft);
  border-color: var(--surface-warning-soft);
  color: var(--color-warning-hover);
}
html[data-theme='light'] .document-meta-item.document-meta-product-type[data-v-797c29a3],
body[data-theme='light'] .document-meta-item.document-meta-product-type[data-v-797c29a3] {
  background: transparent;
  border-color: var(--surface-purple-soft);
  color: var(--color-purple);
}
html[data-theme='light'] .document-meta-item.document-meta-etc[data-v-797c29a3],
body[data-theme='light'] .document-meta-item.document-meta-etc[data-v-797c29a3] {
  color: var(--color-purple);
  background: var(--surface-purple-soft);
  border-color: var(--surface-purple-soft);
}
html[data-theme='light'] .document-meta-item.document-meta-extension[data-v-797c29a3],
body[data-theme='light'] .document-meta-item.document-meta-extension[data-v-797c29a3] {
  background: var(--surface-indigo-soft);
  border-color: var(--surface-indigo-soft);
  color: var(--color-indigo);
}
html[data-theme='light'] .document-meta-item.document-meta-error[data-v-797c29a3],
body[data-theme='light'] .document-meta-item.document-meta-error[data-v-797c29a3] {
  background: var(--surface-danger-soft);
  border-color: var(--surface-danger-soft);
  color: var(--color-danger-hover);
}
html[data-theme='light'] .document-version[data-v-797c29a3],
body[data-theme='light'] .document-version[data-v-797c29a3] {
  color: var(--color-info-hover);
  background: var(--surface-info-soft);
  border-color: var(--surface-info-soft);
}
.document-version.document-version-interactive[data-v-797c29a3] {
  cursor: pointer;
}
body:not([data-theme='dark']) .document-version.document-version-interactive[data-v-797c29a3]:hover,
body:not([data-theme='dark']) .document-version.document-version-interactive[data-v-797c29a3]:focus {
  background: var(--surface-info-soft);
  border-color: var(--surface-info-soft);
  color: var(--color-info-hover);
  transform: translateY(-1px);
}
body[data-theme='dark'] .document-version.document-version-interactive[data-v-797c29a3]:hover,
body[data-theme='dark'] .document-version.document-version-interactive[data-v-797c29a3]:focus {
  background: var(--surface-info-soft);
  border-color: var(--surface-info-soft);
  color: var(--color-info);
  transform: translateY(-1px);
}

/* 버전 이력 차트 스타일 (기존 HTML 버전과 동일) */
.document-version-detail[data-v-797c29a3] {
  display: none;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--border-color);
  position: relative;
  z-index: 1;
}
.document-version-detail.open[data-v-797c29a3] {
  display: block;
}

/* 상품정보와 동일한 스타일 적용 */
.document-version-detail .revision-history-header-bar[data-v-797c29a3] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
  padding: 4px 0;
}
.document-version-detail .revision-history-title[data-v-797c29a3] {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.document-version-detail .revision-history-title i[data-v-797c29a3] {
  color: var(--primary-color);
  font-size: 12px;
}
.document-version-detail .revision-history-controls[data-v-797c29a3] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.document-version-detail .revision-history-content[data-v-797c29a3] {
  max-height: 400px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-top: 4px;
  padding-right: 8px;
}
.document-version-detail .revision-history-loading[data-v-797c29a3] {
  text-align: center;
  padding: 20px;
  color: var(--text-secondary);
}
.document-version-detail .revision-history-loading--inline[data-v-797c29a3] {
  padding: 12px 8px 4px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.document-version-detail .revision-history-loading-text[data-v-797c29a3] {
  font-size: 12px;
  color: var(--text-secondary);
}
.document-version-detail .chart-loading-indicator[data-v-797c29a3] {
  display: flex;
  gap: 4px;
}
.document-version-detail .chart-loading-dot[data-v-797c29a3] {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background-color: var(--primary-color);
  opacity: 0.3;
  animation: chart-loading-pulse-797c29a3 1s infinite ease-in-out alternate;
}
.document-version-detail .chart-loading-dot[data-v-797c29a3]:nth-child(2) {
  animation-delay: 0.15s;
}
.document-version-detail .chart-loading-dot[data-v-797c29a3]:nth-child(3) {
  animation-delay: 0.3s;
}
@keyframes chart-loading-pulse-797c29a3 {
from {
    opacity: 0.3;
    transform: scale(0.8);
}
to {
    opacity: 1;
    transform: scale(1.2);
}
}
.document-version-detail .revision-history-chart[data-v-797c29a3] {
  width: 100%;
  height: 280px;
  cursor: default;
}

/* 스크롤바 스타일 (상품정보와 동일) */
.document-version-detail .revision-history-content[data-v-797c29a3]::-webkit-scrollbar {
  width: 8px;
  height: 8px;
  -webkit-appearance: none;
  display: block;
}
.document-version-detail .revision-history-content[data-v-797c29a3]::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 5px;
  -webkit-box-shadow: none;
}
.document-version-detail .revision-history-content[data-v-797c29a3]::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 999px;
  border: 2px solid transparent;
  -webkit-box-shadow: none;
}
.document-version-detail .revision-history-content[data-v-797c29a3]::-webkit-scrollbar-thumb:hover {
  background: var(--text-secondary);
}
.document-version-detail .revision-history-content[data-v-797c29a3]::-webkit-scrollbar-thumb:active {
  background: var(--text-secondary);
}

/* 다크 테마 */
html[data-theme='dark'] .document-version-detail .revision-history-content[data-v-797c29a3]::-webkit-scrollbar-thumb,
body[data-theme='dark'] .document-version-detail .revision-history-content[data-v-797c29a3]::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
}
html[data-theme='dark'] .document-version-detail .revision-history-content[data-v-797c29a3]::-webkit-scrollbar-thumb:hover,
body[data-theme='dark'] .document-version-detail .revision-history-content[data-v-797c29a3]::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}
html[data-theme='dark'] .document-version-detail .revision-history-content[data-v-797c29a3]::-webkit-scrollbar-track,
body[data-theme='dark'] .document-version-detail .revision-history-content[data-v-797c29a3]::-webkit-scrollbar-track {
  background: var(--surface-color);
  -webkit-box-shadow: inset 0 0 2px var(--scrollbar-track);
}



.document-list-view-wrapper[data-v-6b98ec83] {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.documents-grid[data-v-6b98ec83] {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.document-page__placeholder[data-v-6b98ec83] {
  margin: 0;
  padding: 1.5rem 0.5rem;
  font-size: 0.9rem;
  color: var(--text-secondary);
  text-align: center;
  line-height: 1.6;
}

/* 문서 그룹 스타일 (기존 HTML 버전과 동일) */
.documents-group[data-v-6b98ec83] {
  position: relative;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  background: var(--surface-card, var(--surface-color));
  padding: 14px 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: var(--shadow-sm);
  margin-bottom: 0.75rem;
}
.documents-group[data-v-6b98ec83]:last-child {
  margin-bottom: 0;
}
.documents-group-header[data-v-6b98ec83] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.documents-group-title[data-v-6b98ec83] {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-secondary);
}
.documents-group-meta[data-v-6b98ec83] {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.documents-group-count[data-v-6b98ec83] {
  font-size: 12px;
  color: var(--text-tertiary);
}
.documents-group-body[data-v-6b98ec83] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.documents-group-body[data-v-6b98ec83] .documents-grid-card {
  margin: 0;
}

/* 다크 테마 */
html[data-theme='dark'] .documents-group[data-v-6b98ec83],
body[data-theme='dark'] .documents-group[data-v-6b98ec83] {
  background: var(--surface-stripe);
  border-color: var(--border-subtle);
  box-shadow: none;
}
html[data-theme='dark'] .documents-group-title[data-v-6b98ec83],
body[data-theme='dark'] .documents-group-title[data-v-6b98ec83] {
  color: var(--text-secondary);
}

/* 추가 상세 필터 그룹은 공통 컴포넌트 DetailFilterField 로 이관 */
@media (max-width: 480px) {
.documents-group[data-v-6b98ec83] {
    padding: 4px 4px 4px;
    margin-top: 0.25rem;
    margin-bottom: 0.25rem;
    gap: 4px;
}
.documents-group[data-v-6b98ec83]:first-child {
    margin-top: 0;
}
.documents-group-header[data-v-6b98ec83] {
    gap: 4px;
}
.documents-group-body[data-v-6b98ec83] {
    gap: 4px;
}
}
.page[data-v-bc9af234] {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex: 1 1 auto;
  min-height: 0;
}
.page__header h2[data-v-bc9af234] {
  margin: 0;
}
.page__desc[data-v-bc9af234] {
  margin: 0.5rem 0 0;
  color: var(--text-secondary);
}
.page__card[data-v-bc9af234] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.25rem;
}
@media (max-width: 768px) {
.page__desc[data-v-bc9af234] {
    font-size: 0.9rem;
    line-height: 1.5;
    margin-top: 0.25rem;
}
}
@media (max-width: 480px) {
.page__card[data-v-bc9af234] {
    padding: 0.5rem;
}
}
.document-page-root[data-v-bc9af234] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  gap: 0 !important;
}
.document-page-root > .page__header[data-v-bc9af234] {
  margin-top: 0;
}
.document-page-root .page__desc[data-v-bc9af234] {
  margin-top: 0;
}
.document-page[data-v-bc9af234] {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
  flex: 1 1 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.document-page-root .page__card[data-v-bc9af234] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0 !important;
  background: transparent;
  border: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.document-page__tabs[data-v-bc9af234] {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.document-page__tab-panels[data-v-bc9af234] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: var(--surface-color);
  overflow: hidden;
  position: relative;
  padding: 0.75rem;
  touch-action: pan-y pinch-zoom; /* 수직 스크롤은 허용, 수평 스와이프는 제어 */
}
.document-page__tab-panel[data-v-bc9af234] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
  position: relative;
}
@media (max-width: 480px) {
.document-page__tab-panels[data-v-bc9af234] {
    padding: 0.25rem;
}
.document-page__meta-request-btn[data-v-bc9af234] {
    display: none;
}
}
.document-page__meta-request-btn[data-v-bc9af234] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.65rem;
  margin-right: 0.75rem;
  border: none;
  border-radius: 6px;
  background: var(--primary-color);
  color: white;
  font-size: 0.75rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}
.document-page__meta-request-btn[data-v-bc9af234]:hover {
  background: var(--primary-color-hover, var(--primary-color));
  opacity: 0.9;
}
.document-page__meta-request-label[data-v-bc9af234] {
  font-size: 0.75rem;
}
.document-page__meta-request-btn i[data-v-bc9af234] {
  font-size: 0.75rem;
}

/* 메타생성 작업요청 팝업 */
.meta-request-popup-overlay[data-v-bc9af234] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
}
.meta-request-popup[data-v-bc9af234] {
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  width: 90%;
  max-width: 500px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.meta-request-popup-header[data-v-bc9af234] {
  padding: 1rem 1.25rem 0.5rem;
  border-bottom: 1px solid var(--border-subtle);
}
.meta-request-popup-title[data-v-bc9af234] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.meta-request-popup-body[data-v-bc9af234] {
  padding: 0.75rem 1.25rem 1rem;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}
.meta-request-info[data-v-bc9af234] {
  margin-bottom: 1rem;
}
.meta-request-info-text[data-v-bc9af234] {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-secondary);
}
.meta-request-warning[data-v-bc9af234] {
  margin: 0.75rem 0 0 0;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  color: var(--warning-color, var(--color-warning));
  background: var(--surface-warning-soft);
  border-left: 3px solid var(--warning-color, var(--color-warning));
  border-radius: 4px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.meta-request-warning i[data-v-bc9af234] {
  font-size: 0.875rem;
  flex-shrink: 0;
}
.meta-request-form-group[data-v-bc9af234] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.meta-request-form-group label[data-v-bc9af234] {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-primary);
}
.meta-request-textarea[data-v-bc9af234] {
  width: 100%;
  min-height: 100px;
}
.meta-request-popup-footer[data-v-bc9af234] {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.75rem 1.25rem 1rem;
  border-top: 1px solid var(--border-subtle);
}



.delete-confirm__message[data-v-7b632884] {
  margin: 0;
  font-size: var(--font-md);
  line-height: var(--line-normal);
  color: var(--text-secondary);
  white-space: pre-line;
}
.delete-confirm__input-group[data-v-7b632884] {
  margin-top: var(--space-4);
}
.delete-confirm__label[data-v-7b632884] {
  display: block;
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-2);
}
.delete-confirm__input[data-v-7b632884] {
  width: 100%;
}

.priority-options[data-v-7247610d] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

/* 우선순위 옵션 — 색 코드된 도메인 세그먼트 선택자 (AppButton 으로 대체 불가) */
.priority-option[data-v-7247610d] {
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  font-size: var(--font-md);
  font-family: inherit;
  cursor: pointer;
  transition: background var(--transition-base), border-color var(--transition-base), color var(--transition-base);
  text-align: center;
}
.priority-option[data-v-7247610d]:hover {
  background: var(--surface-hover);
}
.priority-option--selected[data-v-7247610d] {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
  color: var(--primary-color);
  font-weight: var(--font-weight-semibold);
}
.priority-option--low.priority-option--selected[data-v-7247610d] {
  background: var(--surface-muted);
  border-color: var(--text-secondary);
  color: var(--text-secondary);
}
.priority-option--normal.priority-option--selected[data-v-7247610d] {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.priority-option--high.priority-option--selected[data-v-7247610d] {
  background: var(--surface-warning-soft);
  border-color: var(--color-warning);
  color: var(--color-warning);
}
.priority-option--urgent.priority-option--selected[data-v-7247610d] {
  background: var(--surface-danger-soft);
  border-color: var(--color-danger);
  color: var(--color-danger);
}
.priority-option__label[data-v-7247610d] {
  display: block;
}
.priority-reason-group[data-v-7247610d] {
  margin-top: var(--space-4);
}
.priority-reason-label[data-v-7247610d] {
  display: block;
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-2);
}
.priority-reason-input[data-v-7247610d] {
  width: 100%;
}

.status-options-label[data-v-59e2c136] {
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-2);
}
.status-options[data-v-59e2c136] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

/* 상태 옵션 — 진행/후퇴 색 코드된 도메인 세그먼트 선택자 (AppButton 으로 대체 불가) */
.status-option[data-v-59e2c136] {
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  font-size: var(--font-md);
  font-family: inherit;
  cursor: pointer;
  transition: background var(--transition-base), border-color var(--transition-base), color var(--transition-base);
  text-align: center;
}
.status-option[data-v-59e2c136]:hover {
  background: var(--surface-hover);
}
.status-option--selected[data-v-59e2c136] {
  font-weight: var(--font-weight-semibold);
}
.status-option--forward.status-option--selected[data-v-59e2c136] {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.status-option--backward.status-option--selected[data-v-59e2c136] {
  background: var(--surface-danger-soft);
  border-color: var(--color-danger);
  color: var(--color-danger);
}
.status-option__label[data-v-59e2c136] {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.status-option__arrow[data-v-59e2c136] {
  font-size: var(--font-xs);
  opacity: 0.8;
}
.status-option__arrow--forward[data-v-59e2c136] {
  margin-left: var(--space-1);
  color: var(--primary-color);
}
.status-option__arrow--backward[data-v-59e2c136] {
  margin-right: var(--space-1);
  color: var(--color-danger);
}
.status-warning-message[data-v-59e2c136] {
  margin-top: var(--space-4);
  padding: var(--space-3);
  border-radius: var(--radius-md);
  background: var(--surface-warning-soft);
  border: 1px solid var(--color-warning);
  color: var(--color-warning);
  font-size: var(--font-md);
  line-height: var(--line-normal);
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
}
.status-warning-message i[data-v-59e2c136] {
  font-size: var(--font-md);
  flex-shrink: 0;
  margin-top: 0.1rem;
}
.status-warning-message span[data-v-59e2c136] {
  flex: 1;
}
.status-reason-group[data-v-59e2c136] {
  margin-top: var(--space-4);
}
.status-reason-label[data-v-59e2c136] {
  display: block;
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-2);
}
.status-reason-input[data-v-59e2c136] {
  width: 100%;
}

.app-date-picker[data-v-6ccfc21f] {
  height: var(--control-height-md);
  padding: 0 var(--control-padding-x-md);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--surface-color);
  color: var(--text-primary);
  font-family: inherit;
  font-size: var(--font-md);
  box-sizing: border-box;
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
  /* 네이티브 달력 아이콘·팝업이 테마를 따르도록 (다크 기본, 라이트는 아래 오버라이드) */
  color-scheme: dark;
}
html[data-theme='light'] .app-date-picker[data-v-6ccfc21f],
body[data-theme='light'] .app-date-picker[data-v-6ccfc21f] {
  color-scheme: light;
}
.app-date-picker[data-v-6ccfc21f]:hover:not(:disabled) {
  border-color: var(--primary-color);
}
.app-date-picker[data-v-6ccfc21f]:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.app-date-picker[data-v-6ccfc21f]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.app-date-picker[data-v-6ccfc21f]::-webkit-calendar-picker-indicator {
  cursor: pointer;
}

.app-time-picker[data-v-b68475cb] {
  height: var(--control-height-md);
  padding: 0 var(--control-padding-x-md);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--surface-color);
  color: var(--text-primary);
  font-family: inherit;
  font-size: var(--font-md);
  box-sizing: border-box;
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
  /* 네이티브 시계 아이콘·팝업이 테마를 따르도록 (다크 기본, 라이트는 아래 오버라이드) */
  color-scheme: dark;
}
html[data-theme='light'] .app-time-picker[data-v-b68475cb],
body[data-theme='light'] .app-time-picker[data-v-b68475cb] {
  color-scheme: light;
}
.app-time-picker[data-v-b68475cb]:hover:not(:disabled) {
  border-color: var(--primary-color);
}
.app-time-picker[data-v-b68475cb]:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.app-time-picker[data-v-b68475cb]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.app-time-picker[data-v-b68475cb]::-webkit-calendar-picker-indicator {
  cursor: pointer;
}

.due-date-input-group[data-v-5aaae164] {
  margin-bottom: var(--space-4);
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
}
.due-date-input-group[data-v-5aaae164]:last-of-type {
  margin-bottom: 0;
}
.due-date-input-label[data-v-5aaae164] {
  display: block;
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-2);
}
.due-date-reason-group[data-v-5aaae164] {
  margin-top: var(--space-4);
}
.due-date-reason-label[data-v-5aaae164] {
  display: block;
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-2);
}
.due-date-reason-input[data-v-5aaae164] {
  width: 100%;
}

.assignee-selector-container[data-v-1e565484] {
  display: grid;
  grid-template-columns: minmax(0, 2.4fr) auto minmax(0, 2.4fr);
  gap: var(--space-3);
  align-items: stretch;
}
.assignee-column[data-v-1e565484] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}
.assignee-column__header[data-v-1e565484] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.assignee-column__title[data-v-1e565484] {
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-secondary);
}
.assignee-column__search[data-v-1e565484] {
  position: relative;
  display: flex;
  align-items: center;
}
.assignee-search-input[data-v-1e565484] {
  padding-left: 1.6rem;
  padding-right: 1.8rem;
}
.assignee-search-icon[data-v-1e565484] {
  position: absolute;
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.assignee-search-icon--left[data-v-1e565484] {
  left: var(--space-2);
}
.assignee-search-icon--right[data-v-1e565484] {
  right: var(--space-2);
}
.assignee-search-clear[data-v-1e565484] {
  cursor: pointer;
}
.assignee-column__body[data-v-1e565484] {
  flex: 1 1 auto;
  min-height: 160px;
  max-height: 260px;
  overflow-y: auto;
  overflow-x: hidden;
  padding: var(--space-1);
  border-radius: var(--radius-md);
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
}
.assignee-column__body--reviewer[data-v-1e565484] {
  min-height: 44px;
}
.assignee-user-list[data-v-1e565484] {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.assignee-user-item[data-v-1e565484] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-size: var(--font-md);
  color: var(--text-primary);
}
.assignee-user-item[data-v-1e565484]:hover {
  background: var(--surface-hover);
}
.assignee-user-item--selected[data-v-1e565484] {
  background: var(--surface-primary-soft);
  border: 1px solid var(--primary-color);
}
.assignee-user-avatar[data-v-1e565484] {
  width: 20px;
  height: 20px;
  border-radius: var(--radius-full);
  overflow: visible;
  background: var(--surface-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
}
.assignee-user-avatar img[data-v-1e565484] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--radius-full);
}
.assignee-user-avatar i[data-v-1e565484] {
  font-size: var(--font-xs);
  color: var(--text-secondary);
}
.assignee-user-avatar__initials[data-v-1e565484] {
  font-size: 0.6875rem;
  font-weight: var(--font-weight-semibold);
  color: var(--text-secondary);
  line-height: 1;
  user-select: none;
}
.assignee-user-avatar--verifier[data-v-1e565484] {
  box-shadow: 0 0 0 2px var(--primary-color);
}
.assignee-user-avatar__verifier-badge[data-v-1e565484] {
  position: absolute;
  right: -4px;
  bottom: -4px;
  width: 12px;
  height: 12px;
  font-size: 9px !important;
  background: var(--primary-color);
  color: var(--color-white) !important;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
}
.assignee-user-name[data-v-1e565484] {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.assignee-no-users[data-v-1e565484],
.assignee-empty[data-v-1e565484] {
  font-size: var(--font-md);
  color: var(--text-tertiary);
}
.assignee-loading[data-v-1e565484] {
  font-size: var(--font-md);
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: var(--space-1);
}
.assignee-column--center[data-v-1e565484] {
  align-items: stretch;
  justify-content: center;
  gap: var(--space-2);
}

/* 사용자 이동 컨트롤 — 좁은 컬럼형 도메인 버튼 (AppButton 으로 대체 불가) */
.assignee-action-btn[data-v-1e565484] {
  width: 100%;
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  color: var(--text-secondary);
  font-size: var(--font-xs);
  font-family: inherit;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
}
.assignee-action-btn[data-v-1e565484]:hover:not(:disabled) {
  background: var(--surface-hover);
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.assignee-action-btn[data-v-1e565484]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.assignee-action-label[data-v-1e565484] {
  white-space: nowrap;
}
.assignee-actions-divider[data-v-1e565484] {
  height: 1px;
  background: var(--border-color);
  margin: var(--space-1) 0;
}
.assignee-actions[data-v-1e565484] {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.assignee-reason-group[data-v-1e565484] {
  margin-top: var(--space-3);
}
.assignee-reason-label[data-v-1e565484] {
  display: block;
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-2);
}
@media (max-width: 768px) {
.assignee-selector-container[data-v-1e565484] {
    grid-template-columns: minmax(0, 1.8fr) auto minmax(0, 2.2fr);
}
}

.bulk-comment-overlay[data-v-e5fa2285] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}
.bulk-comment-popup[data-v-e5fa2285] {
  width: 100%;
  max-width: 640px;
  margin: 0 1rem;
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.bulk-comment-popup__header[data-v-e5fa2285] {
  padding: 0.875rem 1rem 0.5rem;
  border-bottom: 1px solid var(--border-subtle);
}
.bulk-comment-popup__title[data-v-e5fa2285] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.bulk-comment-popup__subtitle[data-v-e5fa2285] {
  margin: 0.25rem 0 0;
  font-size: 0.8rem;
  color: var(--text-secondary);
}
.bulk-comment-popup__body[data-v-e5fa2285] {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.bulk-comment-popup__notify-label[data-v-e5fa2285] {
  font-size: 0.875rem;
}
.bulk-comment-popup__notify-hint[data-v-e5fa2285] {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--text-secondary);
}
.bulk-comment-popup__footer[data-v-e5fa2285] {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--border-subtle);
  background: var(--surface-muted);
}


.ds-panel[data-v-8eb2371a] {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  gap: 0.5rem;
}

/* 검색 */
.ds-search[data-v-8eb2371a] {
  position: relative;
  flex-shrink: 0;
}
.ds-search__icon[data-v-8eb2371a] {
  position: absolute;
  left: 0.65rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.75rem;
  color: var(--text-tertiary);
  pointer-events: none;
}
.ds-search__input[data-v-8eb2371a] {
  width: 100%;
  padding: 0.5rem 2rem 0.5rem 2rem;
  font-size: 0.8rem;
  box-sizing: border-box;
}
.ds-search__clear[data-v-8eb2371a] {
  position: absolute;
  right: 0.65rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.75rem;
  color: var(--text-tertiary);
  cursor: pointer;
}
.ds-search__clear[data-v-8eb2371a]:hover {
  color: var(--text-primary);
}

/* 칩 필터 */
.ds-chips[data-v-8eb2371a] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  flex-shrink: 0;
}

/* ds-chip: AppButton ghost xs + 라운드 오버라이드 */
.ds-chip.app-btn[data-v-8eb2371a] {
  border-radius: 12px;
}

/* 회사 필터 + 정렬 */
.ds-filter-row[data-v-8eb2371a] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.ds-sort-btns[data-v-8eb2371a] {
  display: flex;
  gap: 0.25rem;
  flex-shrink: 0;
  margin-left: auto;
}
.ds-sort-btn__icon[data-v-8eb2371a] {
  font-size: 0.6rem;
}
.ds-company-select[data-v-8eb2371a] {
  flex: 1;
  min-width: 0;
  padding: 0.3rem 0.6rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  font-size: 0.75rem;
  outline: none;
}

/* 목록 */
.ds-list[data-v-8eb2371a] {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--surface-color-secondary);
}
.ds-status[data-v-8eb2371a] {
  padding: 1.5rem;
  text-align: center;
  font-size: 0.8rem;
  color: var(--text-tertiary);
}
.ds-status--more[data-v-8eb2371a] {
  padding: 0.75rem;
}

/* ds-status__reset — AppButton secondary xs + 레이아웃 */
.ds-status__reset[data-v-8eb2371a] {
  margin-top: 0.5rem;
}
.ds-item[data-v-8eb2371a] {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.55rem 0.75rem;
  cursor: pointer;
  border-bottom: 1px solid var(--border-color);
  transition: background 0.15s ease;
}
.ds-item[data-v-8eb2371a]:last-child {
  border-bottom: none;
}
.ds-item[data-v-8eb2371a]:hover:not(.ds-item--excluded) {
  background: var(--surface-primary-soft);
}
.ds-item--selected[data-v-8eb2371a] {
  background: var(--surface-primary-soft);
  border-left: 3px solid var(--primary-color);
}
.ds-item--excluded[data-v-8eb2371a] {
  opacity: 0.4;
  cursor: not-allowed;
}
.ds-item__row1[data-v-8eb2371a] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}
.ds-item__name[data-v-8eb2371a] {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}
.ds-item__badge[data-v-8eb2371a] {
  flex-shrink: 0;
  font-size: 0.65rem;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  background: var(--surface-muted);
  color: var(--text-tertiary);
  border: 1px solid var(--border-color);
  white-space: nowrap;
}
.ds-item__docid[data-v-8eb2371a] {
  flex-shrink: 0;
  font-size: 0.62rem;
  color: var(--text-tertiary);
  opacity: 0.6;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.ds-item__row2[data-v-8eb2371a] {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.7rem;
  color: var(--text-tertiary);
}
.ds-item__favicon[data-v-8eb2371a] {
  width: 16px;
  height: 16px;
  border-radius: 3px;
  object-fit: contain;
  flex-shrink: 0;
}
.ds-item__favicon-fallback[data-v-8eb2371a] {
  font-size: 0.7rem;
  flex-shrink: 0;
  opacity: 0.6;
}
.ds-item__company[data-v-8eb2371a] {
  white-space: nowrap;
  flex-shrink: 0;
}
.ds-item__size[data-v-8eb2371a] {
  white-space: nowrap;
  flex-shrink: 0;
  opacity: 0.75;
}
.ds-item__spacer[data-v-8eb2371a] {
  flex: 1;
}
.ds-item__date[data-v-8eb2371a] {
  white-space: nowrap;
  flex-shrink: 0;
}

/* 순서 뱃지 */
.ds-item__order-badge[data-v-8eb2371a] {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  font-weight: 600;
  color: var(--text-tertiary);
}
.ds-item__order-badge--left[data-v-8eb2371a] {
  background: var(--primary-color);
  border-color: var(--primary-color);
  color: var(--color-white);
}
.ds-item__order-badge--right[data-v-8eb2371a] {
  background: var(--color-indigo);
  border-color: var(--color-indigo);
  color: var(--color-white);
}

/* 멀티 선택 상단 바 */
.ds-multi-top[data-v-8eb2371a] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.2rem 0;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
  border-radius: 6px 6px 0 0;
}
.ds-multi-top__selections[data-v-8eb2371a] {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex: 1;
  min-width: 0;
}
.ds-multi-top__slot[data-v-8eb2371a] {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.2rem;
  border-radius: 6px;
  border: 1px dashed var(--border-color);
  background: var(--surface-color-secondary);
}
.ds-multi-top__slot--left[data-v-8eb2371a] {
  justify-content: flex-start;
}
.ds-multi-top__slot--right[data-v-8eb2371a] {
  justify-content: flex-end;
}
.ds-multi-top__vs[data-v-8eb2371a] {
  flex-shrink: 0;
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--text-tertiary);
  opacity: 0.6;
}
.ds-multi-top__dot[data-v-8eb2371a] {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6rem;
  font-weight: 700;
  color: var(--color-white);
}
.ds-multi-top__dot--a[data-v-8eb2371a] { background: var(--primary-color);
}
.ds-multi-top__dot--b[data-v-8eb2371a] { background: var(--color-indigo);
}
.ds-multi-top__dot--empty[data-v-8eb2371a] {
  background: transparent;
  border: 1px dashed var(--text-tertiary);
  color: var(--text-tertiary);
  opacity: 0.5;
}
.ds-multi-top__name[data-v-8eb2371a] {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  color: var(--text-primary);
  font-size: 0.78rem;
  font-weight: 500;
}
.ds-multi-top__empty[data-v-8eb2371a] {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  font-size: 0.72rem;
  color: var(--text-tertiary);
  opacity: 0.6;
}

/* ds-multi-top__remove — AppButton icon-only ghost xs + 레이아웃 */
.ds-multi-top__remove[data-v-8eb2371a] {
  flex-shrink: 0;
}

/* 멀티 선택 하단 확인 바 */
.ds-multi-bottom[data-v-8eb2371a] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.6rem 0.75rem;
  border-top: 1px solid var(--border-color);
  background: var(--surface-color);
  border-radius: 0 0 6px 6px;
}
.ds-multi-bottom--warn[data-v-8eb2371a] {
  background: var(--surface-warning-soft);
  border-top-color: var(--color-warning);
  animation: ds-warn-shake-8eb2371a 0.3s ease;
}
@keyframes ds-warn-shake-8eb2371a {
0%, 100% { transform: translateX(0);
}
25% { transform: translateX(-4px);
}
75% { transform: translateX(4px);
}
}
.ds-multi-bottom__message[data-v-8eb2371a] {
  flex: 1;
  min-width: 0;
  font-size: 0.75rem;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: center;
  gap: 0.3rem;
}
.ds-multi-bottom__msg-icon[data-v-8eb2371a] {
  opacity: 0.6;
  font-size: 0.72rem;
}
.ds-multi-bottom__warn-icon[data-v-8eb2371a] {
  flex-shrink: 0;
  color: var(--color-warning);
  font-size: 0.78rem;
}

/* ds-multi-bottom__btn — AppButton primary sm + 레이아웃 */
.ds-multi-bottom__btn[data-v-8eb2371a] {
  flex-shrink: 0;
}

.user-avatar[data-v-00cffccc] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  flex-shrink: 0;
  vertical-align: middle;
  line-height: 1;
  user-select: none;
  background-color: var(--surface-muted);
  background-size: cover;
  background-position: center;
}
.user-avatar--initials[data-v-00cffccc] {
  color: var(--text-secondary);
  font-weight: 600;
}
.user-avatar--icon[data-v-00cffccc] {
  color: var(--text-tertiary);
}

.user-chip[data-v-66c08715] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  vertical-align: middle;
  line-height: inherit;
}
.user-chip__avatar[data-v-66c08715] {
  font-size: 0.65rem;
}
.user-chip__name[data-v-66c08715] {
  color: var(--text-primary);
  font-weight: 500;
}
.user-chip__uid[data-v-66c08715] {
  color: var(--text-tertiary, var(--text-secondary));
  font-size: 0.85em;
  margin-left: 1px;
}

.wizard-overlay[data-v-affb34b3] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}
.wizard-popup[data-v-affb34b3] {
  width: 90%;
  max-width: 520px;
  height: 70vh;
  margin: 0 1rem;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  box-shadow: var(--shadow-modal);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Header */
.wizard-popup__header[data-v-affb34b3] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border-color);
}
.wizard-popup__title[data-v-affb34b3] {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0;
}
.wizard-popup__steps[data-v-affb34b3] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.wizard-step-dot[data-v-affb34b3] {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: 600;
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  color: var(--text-tertiary);
  transition: all 0.2s ease;
}
.wizard-step-dot--active[data-v-affb34b3] {
  background: var(--primary-color);
  border-color: var(--primary-color);
  color: var(--color-white);
}
.wizard-step-dot--done[data-v-affb34b3] {
  background: var(--primary-color);
  border-color: var(--primary-color);
  color: var(--color-white);
  opacity: 0.6;
}

/* Body */
.wizard-popup__body[data-v-affb34b3] {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
}
.wizard-step[data-v-affb34b3] {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
}
.wizard-step--centered[data-v-affb34b3] {
  justify-content: center;
  align-items: center;
}
.wizard-step--centered .wizard-worktype-list[data-v-affb34b3] {
  width: 100%;
  max-width: 400px;
}
.wizard-step__desc[data-v-affb34b3] {
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin: 0 0 0.75rem 0;
  flex-shrink: 0;
}

/* Step 1: Work type cards */
.wizard-worktype-list[data-v-affb34b3] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.wizard-worktype-item[data-v-affb34b3] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  cursor: pointer;
  transition: all 0.2s ease;
  text-align: left;
  width: 100%;
}
.wizard-worktype-item[data-v-affb34b3]:hover {
  border-color: var(--primary-color);
  background: var(--surface-primary-soft);
}
.wizard-worktype-item--selected[data-v-affb34b3] {
  border-color: var(--primary-color);
  background: var(--surface-primary-soft);
}
.wizard-worktype-item__icon[data-v-affb34b3] {
  font-size: 1.1rem;
  color: var(--text-secondary);
  width: 24px;
  text-align: center;
  flex-shrink: 0;
}
.wizard-worktype-item--selected .wizard-worktype-item__icon[data-v-affb34b3] {
  color: var(--primary-color);
}
.wizard-worktype-item__text[data-v-affb34b3] {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.wizard-worktype-item__name[data-v-affb34b3] {
  font-size: 0.85rem;
  font-weight: 600;
}
.wizard-worktype-item__desc[data-v-affb34b3] {
  font-size: 0.72rem;
  color: var(--text-tertiary);
}

/* Step 2: Selector */
.wizard-selector__search[data-v-affb34b3] {
  position: relative;
  margin-bottom: 0.5rem;
}
.wizard-selector__search-icon[data-v-affb34b3] {
  position: absolute;
  left: 0.65rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.75rem;
  color: var(--text-tertiary);
  pointer-events: none;
}
.wizard-selector__search-input[data-v-affb34b3] {
  width: 100%;
  padding: 0.5rem 2rem 0.5rem 2rem;
  box-sizing: border-box;
}
.wizard-selector__search-clear[data-v-affb34b3] {
  position: absolute;
  right: 0.65rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.75rem;
  color: var(--text-tertiary);
  cursor: pointer;
}
.wizard-selector__search-clear[data-v-affb34b3]:hover {
  color: var(--text-primary);
}
.wizard-selector[data-v-affb34b3] {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
}
.wizard-selector__list[data-v-affb34b3] {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--surface-color-secondary);
}
.wizard-selector__item[data-v-affb34b3] {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.55rem 0.75rem;
  cursor: pointer;
  border-bottom: 1px solid var(--border-color);
  transition: all 0.15s ease;
}
.wizard-selector__item--row[data-v-affb34b3] {
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
}
.wizard-selector__item[data-v-affb34b3]:last-child {
  border-bottom: none;
}
.wizard-selector__item[data-v-affb34b3]:hover {
  background: var(--surface-primary-soft);
}
.wizard-selector__item--selected[data-v-affb34b3] {
  background: var(--surface-primary-soft);
}
.wizard-selector__item-favicon[data-v-affb34b3] {
  width: 16px;
  height: 16px;
  border-radius: 3px;
  object-fit: contain;
  flex-shrink: 0;
}
.wizard-selector__item-favicon-fallback[data-v-affb34b3] {
  width: 16px;
  font-size: 0.75rem;
  color: var(--text-tertiary);
  text-align: center;
  flex-shrink: 0;
}
.wizard-selector__item-main[data-v-affb34b3] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.wizard-selector__item-name[data-v-affb34b3] {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wizard-selector__item-badge[data-v-affb34b3] {
  font-size: 0.65rem;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  background: var(--surface-muted);
  color: var(--text-tertiary);
  border: 1px solid var(--border-color);
  flex-shrink: 0;
  white-space: nowrap;
}
.wizard-selector__item-date[data-v-affb34b3] {
  font-size: 0.65rem;
  color: var(--text-tertiary);
  flex-shrink: 0;
  white-space: nowrap;
  margin-left: auto;
}
.wizard-selector__item-row2[data-v-affb34b3] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.wizard-selector__item-size[data-v-affb34b3] {
  font-size: 0.65rem;
  color: var(--text-tertiary);
  flex-shrink: 0;
  white-space: nowrap;
}
.wizard-selector__item-sub[data-v-affb34b3] {
  font-size: 0.7rem;
  color: var(--text-tertiary);
  flex-shrink: 0;
  white-space: nowrap;
}
.wizard-selector__item--row .wizard-selector__item-sub[data-v-affb34b3] {
  margin-left: auto;
}
.wizard-selector__loading[data-v-affb34b3],
.wizard-selector__empty[data-v-affb34b3] {
  padding: 1.5rem;
  text-align: center;
  font-size: 0.8rem;
  color: var(--text-tertiary);
}
.wizard-selector__load-more[data-v-affb34b3] {
  display: block;
  width: 100%;
  padding: 0.5rem;
  background: transparent;
  border: none;
  border-top: 1px solid var(--border-color);
  color: var(--primary-color);
  font-size: 0.78rem;
  cursor: pointer;
  transition: background 0.15s ease;
}
.wizard-selector__load-more[data-v-affb34b3]:hover {
  background: var(--surface-primary-soft);
}
.wizard-selector__load-more[data-v-affb34b3]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Document filters */
.wizard-doctype-filters[data-v-affb34b3] {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
}
.wizard-doctype-filter[data-v-affb34b3] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
}
.wizard-company-multiselect[data-v-affb34b3] {
  font-size: 0.75rem;
}
.wizard-doctype-chip[data-v-affb34b3] {
  padding: 0.2rem 0.55rem;
  border-radius: 12px;
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  color: var(--text-secondary);
  font-size: 0.7rem;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.wizard-doctype-chip[data-v-affb34b3]:hover {
  border-color: var(--primary-color);
  color: var(--text-primary);
}
.wizard-doctype-chip--selected[data-v-affb34b3] {
  background: var(--surface-primary-soft);
  border-color: var(--primary-color);
  color: var(--primary-color);
  font-weight: 500;
}

/* Step 4: Assignee */
.wizard-assignee-chips[data-v-affb34b3] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.6rem;
}
.wizard-assignee-chip[data-v-affb34b3] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.3rem 0.7rem;
  border-radius: 14px;
  background: var(--surface-primary-soft);
  border: 1px solid var(--primary-color);
  color: var(--text-primary);
  font-size: 0.72rem;
}
.wizard-assignee-chip--reviewer[data-v-affb34b3] {
  background: var(--surface-info-soft);
  border-color: var(--color-info);
}
.wizard-assignee-chip__remove[data-v-affb34b3] {
  cursor: pointer;
  color: var(--text-tertiary);
  font-size: 0.7rem;
}
.wizard-assignee-chip__remove[data-v-affb34b3]:hover {
  color: var(--color-danger);
}
.wizard-assignee-check[data-v-affb34b3] {
  font-size: 0.85rem;
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.wizard-selector__item--selected .wizard-assignee-check[data-v-affb34b3] {
  color: var(--primary-color);
}

/* Step 3: Form */
.wizard-form-group[data-v-affb34b3] {
  margin-bottom: 0.75rem;
}
.wizard-form-label[data-v-affb34b3] {
  display: block;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: 0.35rem;
}
.wizard-summary-box[data-v-affb34b3] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--surface-color-secondary);
  font-size: 0.8rem;
  color: var(--text-primary);
}
.wizard-summary-box__icon[data-v-affb34b3] {
  color: var(--primary-color);
  font-size: 0.85rem;
}
.wizard-priority-list[data-v-affb34b3] {
  display: flex;
  gap: 0.35rem;
}
.wizard-priority-btn[data-v-affb34b3] {
  flex: 1;
}
.wizard-priority-btn--low.wizard-priority-btn--selected[data-v-affb34b3] {
  border-color: var(--color-info) !important;
  background: var(--surface-info-soft) !important;
  color: var(--color-info) !important;
}
.wizard-priority-btn--normal.wizard-priority-btn--selected[data-v-affb34b3] {
  border-color: var(--primary-color) !important;
  background: var(--surface-primary-soft) !important;
  color: var(--primary-color) !important;
}
.wizard-priority-btn--high.wizard-priority-btn--selected[data-v-affb34b3] {
  border-color: var(--color-warning) !important;
  background: var(--surface-warning-soft) !important;
  color: var(--color-warning) !important;
}
.wizard-priority-btn--urgent.wizard-priority-btn--selected[data-v-affb34b3] {
  border-color: var(--color-danger) !important;
  background: var(--surface-danger-soft) !important;
  color: var(--color-danger) !important;
}
.wizard-form-row[data-v-affb34b3] {
  display: flex;
  gap: 0.5rem;
}
.wizard-form-input[data-v-affb34b3] {
  flex: 1;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  font-size: 0.8rem;
  transition: all 0.2s ease;
}
.wizard-form-input[data-v-affb34b3]:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.wizard-form-textarea[data-v-affb34b3] {
  width: 100%;
  box-sizing: border-box;
}
.wizard-warning[data-v-affb34b3] {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.6rem 0.75rem;
  border-radius: 6px;
  background: var(--surface-warning-soft);
  border: 1px solid var(--color-warning);
  color: var(--color-warning);
  font-size: 0.78rem;
  margin-top: 0.5rem;
}
.wizard-error[data-v-affb34b3] {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.6rem 0.75rem;
  border-radius: 6px;
  background: var(--surface-danger-soft);
  border: 1px solid var(--color-danger);
  color: var(--color-danger);
  font-size: 0.78rem;
  margin-top: 0.5rem;
}

/* Footer */
.wizard-popup__footer[data-v-affb34b3] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.25rem;
  border-top: 1px solid var(--border-color);
}
.wizard-popup__footer-spacer[data-v-affb34b3] {
  flex: 1;
}


/* Responsive */
@media (max-width: 480px) {
.wizard-popup[data-v-affb34b3] {
    max-width: none;
    width: calc(100% - 2rem);
    height: 80vh;
}
.wizard-priority-list[data-v-affb34b3] {
    flex-wrap: wrap;
}
.wizard-priority-btn[data-v-affb34b3] {
    flex: 0 0 calc(50% - 0.2rem);
}
}

.todo-card[data-v-186c9ec5] {
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 18px 12px;
  background: var(--surface-color);
  transition: all 0.2s;
  min-width: 0;
  width: 100%;
  position: relative;
  line-height: 1.4;
}

/* 대기/진행 탭일 때 padding 제거 */
.todo-card[data-v-186c9ec5]:has(.todo-list-item) {
  padding: 0;
}
.todo-card[data-v-186c9ec5]:hover {
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
  border-color: var(--primary-color);
}
html[data-theme='light'] .todo-card[data-v-186c9ec5]:hover,
body[data-theme='light'] .todo-card[data-v-186c9ec5]:hover {
  box-shadow: var(--shadow-sm);
  border-color: var(--primary-color);
}
html[data-theme='dark'] .todo-card[data-v-186c9ec5]:hover,
body[data-theme='dark'] .todo-card[data-v-186c9ec5]:hover {
  box-shadow: var(--shadow-md);
  border-color: var(--primary-color);
}

/* 전체 탭에서 상태별 카드 스타일 (일반 레이아웃용) - GitLab 스타일 레이아웃이 아닐 때만 적용 */
.todo-card--status-pending[data-v-186c9ec5]:not(.todo-card--waiting-tab):not(.todo-card--progress-tab):not(.todo-card--review-tab):not(.todo-card--completed-tab) {
  background: var(--todo-card-pending-bg, var(--surface-color));
  border-color: var(--todo-card-pending-border, var(--border-color));
}
.todo-card--status-in-progress[data-v-186c9ec5]:not(.todo-card--waiting-tab):not(.todo-card--progress-tab):not(.todo-card--review-tab):not(.todo-card--completed-tab) {
  background: var(--todo-card-progress-bg, var(--surface-primary-soft));
  border-color: var(--todo-card-progress-border, var(--primary-color));
}
.todo-card--status-review[data-v-186c9ec5]:not(.todo-card--waiting-tab):not(.todo-card--progress-tab):not(.todo-card--review-tab):not(.todo-card--completed-tab) {
  background: var(--todo-card-review-bg, var(--surface-warning-soft));
  border-color: var(--todo-card-review-border, var(--color-warning));
}
.todo-card--status-completed[data-v-186c9ec5]:not(.todo-card--waiting-tab):not(.todo-card--progress-tab):not(.todo-card--review-tab):not(.todo-card--completed-tab) {
  background: var(--todo-card-success-bg, var(--surface-success-soft));
  border-color: var(--todo-card-success-border, var(--color-success));
}
.todo-card--status-cancelled[data-v-186c9ec5] {
  background: var(--todo-card-cancelled-bg, var(--surface-color));
  border-color: var(--todo-card-cancelled-border, var(--border-color));
}
.todo-header[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}
.todo-header-left[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1 1 auto;
  min-width: 0;
  cursor: text;
  user-select: text;
}
.todo-header-left strong[data-v-186c9ec5] {
  cursor: text;
  user-select: text;
}
.todo-header-right[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.tag[data-v-186c9ec5] {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  background: var(--tag-bg, var(--surface-muted));
  color: var(--tag-fg, var(--text-secondary));
  white-space: nowrap;
  user-select: none;
}
.tag-pending[data-v-186c9ec5] {
  background: var(--surface-muted);
  color: var(--text-tertiary);
}
.tag-in_progress[data-v-186c9ec5] {
  background: var(--surface-primary-soft);
  color: var(--primary-color);
}
.tag-review[data-v-186c9ec5] {
  background: var(--surface-warning-soft);
  color: var(--color-warning);
}
.tag-completed[data-v-186c9ec5] {
  background: var(--surface-success-soft);
  color: var(--color-success-hover);
}
.tag-cancelled[data-v-186c9ec5] {
  background: var(--surface-muted);
  color: var(--text-secondary);
}
.tag-priority-low[data-v-186c9ec5] {
  border-left: 2px solid var(--text-secondary);
}
.tag-priority-normal[data-v-186c9ec5] {
  border-left: 2px solid var(--primary-color);
}
.tag-priority-high[data-v-186c9ec5] {
  border-left: 2px solid var(--color-warning);
}
.tag-priority-urgent[data-v-186c9ec5] {
  border-left: 2px solid var(--color-danger-hover);
}
.todo-row[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
  font-size: 12px;
  line-height: 1.4;
}
.todo-row[data-v-186c9ec5]:last-child {
  margin-bottom: 0;
}
.todo-row .left[data-v-186c9ec5] {
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.todo-row .right[data-v-186c9ec5] {
  flex: 0 0 auto;
  text-align: right;
  white-space: nowrap;
}
.muted[data-v-186c9ec5] {
  color: var(--text-secondary);
}
.todo-description-text[data-v-186c9ec5] {
  font-size: 12px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  cursor: text;
  user-select: text;
}
.todo-meta[data-v-186c9ec5] {
  font-size: 12px;
  line-height: 1.4;
  cursor: text;
  user-select: text;
}
.todo-meta-separator[data-v-186c9ec5] {
  color: var(--text-tertiary, var(--text-secondary));
}
.todo-category[data-v-186c9ec5] {
  font-weight: 500;
  cursor: text;
  user-select: text;
}
.todo-priority[data-v-186c9ec5] {
  font-weight: 500;
  cursor: text;
  user-select: text;
}
.todo-priority--clickable[data-v-186c9ec5] {
  cursor: pointer;
  user-select: none;
  transition: opacity 0.2s ease;
}
.todo-priority--clickable[data-v-186c9ec5]:hover {
  opacity: 0.8;
}
.todo-due-date[data-v-186c9ec5] {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  cursor: text;
  user-select: text;
}
.todo-date-info[data-v-186c9ec5] {
  font-size: 12px;
  line-height: 1.4;
  cursor: text;
  user-select: text;
}
.todo-date-separator[data-v-186c9ec5] {
  color: var(--text-tertiary, var(--text-secondary));
}
.todo-completed-date[data-v-186c9ec5] {
  font-size: 12px;
  line-height: 1.4;
  color: var(--success-color);
  cursor: text;
  user-select: text;
}
.todo-tools-row[data-v-186c9ec5] {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--border-color);
  width: 100%;
}
html[data-theme='dark'] .todo-tools-row[data-v-186c9ec5] {
  border-top-color: var(--border-color);
}
.todo-tools-row--in-list[data-v-186c9ec5] {
  padding-left: 12px;
  padding-right: 12px;
  padding-bottom: 8px;
}
.todo-tools[data-v-186c9ec5] {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

/* .todo-tool-btn → AppButton variant="secondary" size="sm" */

/* 대기 탭 전용 스타일 (GitLab 스타일) */
.todo-list-item[data-v-186c9ec5] {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 12px 12px;
  min-height: 60px;
  width: 100%;
  height: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow: hidden;
  flex-wrap: wrap; /* 필요 시 오른쪽 영역이 아래 줄로 내려갈 수 있도록 허용 */
}


/* 마감일이 지난 카드 배경 - todo-card에 적용 */
.todo-card--overdue[data-v-186c9ec5] {
  background: var(--surface-danger-soft) !important;
}
html[data-theme='light'] .todo-card--overdue[data-v-186c9ec5],
body[data-theme='light'] .todo-card--overdue[data-v-186c9ec5] {
  background: var(--surface-danger-soft) !important;
}

/* 마감일이 미지정된 카드 배경 - todo-card에 적용 */
.todo-card--no-due-date[data-v-186c9ec5] {
  background: var(--surface-muted) !important;
}
html[data-theme='light'] .todo-card--no-due-date[data-v-186c9ec5],
body[data-theme='light'] .todo-card--no-due-date[data-v-186c9ec5] {
  background: var(--surface-muted) !important;
}

/* 진척이 소진율보다 작은 카드 배경 - 연한 노랑 */
.todo-card--progress-behind[data-v-186c9ec5] {
  background: var(--surface-warning-soft) !important;
}
html[data-theme='light'] .todo-card--progress-behind[data-v-186c9ec5],
body[data-theme='light'] .todo-card--progress-behind[data-v-186c9ec5] {
  background: var(--surface-warning-soft) !important;
}

/* 대기 탭 카드 - 좌측 연두색 강조 + 얇은 연두색 테두리 */
.todo-card--waiting-tab[data-v-186c9ec5] {
  border: 1px solid var(--color-lime); /* 얇은 연두색 테두리 */
}
.todo-card--waiting-tab[data-v-186c9ec5]:hover {
  box-shadow: -1px 0 0 0 var(--primary-color);
  border-color: var(--primary-color);
}

/* 진행 탭 카드 - 좌측 파란색 강조 + 얇은 파란색 테두리 */
.todo-card--progress-tab[data-v-186c9ec5] {
  border: 1px solid var(--color-info); /* 얇은 파란색 테두리 */
}
.todo-card--progress-tab[data-v-186c9ec5]:hover {
  box-shadow: -1px 0 0 0 var(--primary-color);
  border-color: var(--primary-color);
}

/* 검토 탭 카드 - 좌측 주황색 강조 + 얇은 주황색 테두리 */
.todo-card--review-tab[data-v-186c9ec5] {
  border: 1px solid var(--color-orange); /* 얇은 주황색 테두리 */
}
.todo-card--review-tab[data-v-186c9ec5]:hover {
  box-shadow: -1px 0 0 0 var(--primary-color);
  border-color: var(--primary-color);
}

/* 완료 탭 카드 - 좌측 테마 반대색 강조 + 얇은 테마 반대색 테두리 */
.todo-card--completed-tab[data-v-186c9ec5] {
  border: 1px solid var(--text-primary); /* 얇은 테마 반대색 테두리 */
}
.todo-card--completed-tab[data-v-186c9ec5]:hover {
  box-shadow: -1px 0 0 0 var(--primary-color);
  border-color: var(--primary-color);
}
.todo-card--completion-early[data-v-186c9ec5] {
  background: var(--surface-success-soft) !important; /* 연한 초록색 - 선행 */
}
html[data-theme='light'] .todo-card--completion-early[data-v-186c9ec5],
body[data-theme='light'] .todo-card--completion-early[data-v-186c9ec5] {
  background: var(--surface-success-soft) !important;
}
.todo-card--completion-delayed[data-v-186c9ec5] {
  background: var(--surface-danger-soft) !important; /* 연한 붉은색 - 지연 */
}
html[data-theme='light'] .todo-card--completion-delayed[data-v-186c9ec5],
body[data-theme='light'] .todo-card--completion-delayed[data-v-186c9ec5] {
  background: var(--surface-danger-soft) !important;
}
.todo-list-item__icon[data-v-186c9ec5] {
  flex-shrink: 0;
  width: 20px;
  padding-top: 0.25rem;
  color: var(--text-tertiary, var(--text-secondary));
  font-size: 0.875rem;
}
.todo-list-item__content[data-v-186c9ec5] {
  /* 기본은 가변 폭이지만, 너무 일찍 줄바꿈되지 않도록 적당한 기준 폭만 설정 */
  flex: 1 1 400px;
  min-width: 0;
}
.todo-list-item__header[data-v-186c9ec5] {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  align-items: flex-start;
}
.todo-list-item__title-row[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap; /* 좁은 폭에서 뱃지가 다음 줄로 떨어지도록 허용 (제목과 겹침 방지) */
}
.todo-list-item__title-prefix[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  order: 1;
  flex-wrap: nowrap;
}
.todo-list-item__badges[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
  order: 2;
  flex-shrink: 0; /* 좁아져도 자기 컨텐츠 폭 유지 — 뱃지 묶음이 통째로 다음 줄로 떨어진다 */
}
.todo-checkbox[data-v-186c9ec5] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  cursor: pointer;
  accent-color: var(--primary-color);
}
.todo-list-item__title[data-v-186c9ec5] {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.4;
  flex: 1 1 auto;
  min-width: 0;
  /* inline flow 로 두어 아이콘과 텍스트가 같은 줄에서 시작하고 텍스트만 자연 줄바꿈 */
  display: block;
  cursor: text;
  user-select: text;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.todo-list-item__category-icon[data-v-186c9ec5] {
  display: inline-block;
  margin-right: 4px;
  flex-shrink: 0;
}
.todo-list-item__title--clickable[data-v-186c9ec5] {
  cursor: pointer;
  user-select: none;
  transition: color 0.2s ease;
}
.todo-list-item__title--clickable[data-v-186c9ec5]:hover {
  color: var(--primary-color);
}
.todo-list-item__title > span[data-v-186c9ec5] {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.todo-list-item__tags[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.todo-list-item__priority-tag[data-v-186c9ec5] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  background: var(--surface-muted);
  color: var(--text-primary);
  cursor: text;
  user-select: text;
  border: 1px solid var(--border-subtle);
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  flex-shrink: 0;
  white-space: nowrap;
  margin-left: 0;
}
.todo-list-item__priority-tag--low[data-v-186c9ec5] {
  background: var(--surface-muted);
  border-color: var(--border-subtle);
  color: var(--text-primary);
}
.todo-list-item__priority-tag--normal[data-v-186c9ec5] {
  background: var(--surface-primary-soft);
  border-color: var(--border-subtle);
  color: var(--text-primary);
}
.todo-list-item__priority-tag--high[data-v-186c9ec5] {
  background: var(--surface-warning-soft);
  border-color: var(--border-subtle);
  color: var(--text-primary);
}
.todo-list-item__priority-tag--urgent[data-v-186c9ec5] {
  background: var(--surface-danger-soft);
  border-color: var(--border-subtle);
  color: var(--text-primary);
}
.todo-list-item__priority-tag--clickable[data-v-186c9ec5] {
  cursor: pointer;
  user-select: none;
  transition: opacity 0.2s ease, transform 0.1s ease;
}
.todo-list-item__priority-tag--clickable[data-v-186c9ec5]:hover {
  opacity: 0.8;
  transform: scale(1.05);
}
.todo-list-item__category-tag[data-v-186c9ec5] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  background: var(--surface-muted);
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  flex-shrink: 0;
  white-space: nowrap;
  margin-left: 0;
  cursor: text;
  user-select: text;
}
.todo-list-item__description[data-v-186c9ec5] {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-top: 0.25rem;
  line-height: 1.3;
  word-wrap: break-word;
  cursor: text;
  user-select: text;
}
html[data-theme='light'] .todo-list-item__description[data-v-186c9ec5],
body[data-theme='light'] .todo-list-item__description[data-v-186c9ec5] {
  color: var(--text-primary);
  opacity: 0.85;
}
.todo-list-item__meta[data-v-186c9ec5] {
  font-size: 12px;
  line-height: 1.3;
  color: var(--text-tertiary, var(--text-secondary));
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-top: 0.25rem;
  min-height: calc(12px * 1.3);
}
html[data-theme='light'] .todo-list-item__meta[data-v-186c9ec5],
body[data-theme='light'] .todo-list-item__meta[data-v-186c9ec5] {
  color: var(--text-secondary);
}
.todo-list-item__id[data-v-186c9ec5] {
  color: var(--text-secondary);
  font-weight: 500;
}
.todo-list-item__status-badge[data-v-186c9ec5] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  flex-shrink: 0;
  white-space: nowrap;
  cursor: text;
  user-select: text;
  margin-right: 4px;
}
.todo-list-item__status-badge--clickable[data-v-186c9ec5] {
  cursor: pointer;
  user-select: none;
}
.todo-list-item__status-badge--clickable[data-v-186c9ec5]:hover {
  opacity: 0.8;
  transform: scale(1.05);
}
.todo-list-item__status-badge--pending[data-v-186c9ec5] {
  background: var(--surface-lime-soft); /* 대기 탭 연두색 */
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
}
.todo-card--status-pending:not(.todo-card--waiting-tab):not(.todo-card--progress-tab):not(.todo-card--review-tab):not(.todo-card--completed-tab) .todo-list-item__status-badge--pending[data-v-186c9ec5] {
  background: var(--surface-muted); /* 전체 탭 회색 */
  border: 1px solid var(--border-subtle);
}
.todo-list-item__status-badge--in_progress[data-v-186c9ec5] {
  background: var(--surface-info-soft); /* 진행 탭 파란색 */
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
}
.todo-card--status-in-progress:not(.todo-card--waiting-tab):not(.todo-card--progress-tab):not(.todo-card--review-tab):not(.todo-card--completed-tab) .todo-list-item__status-badge--in_progress[data-v-186c9ec5] {
  background: var(--surface-primary-soft); /* 전체 탭 초록색 */
  border: 1px solid var(--border-subtle);
}
.todo-list-item__status-badge--review[data-v-186c9ec5] {
  background: var(--surface-orange-soft); /* 검토 탭 주황색 */
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
}
.todo-card--status-review:not(.todo-card--waiting-tab):not(.todo-card--progress-tab):not(.todo-card--review-tab):not(.todo-card--completed-tab) .todo-list-item__status-badge--review[data-v-186c9ec5] {
  background: var(--surface-warning-soft); /* 전체 탭 노란색 */
  border: 1px solid var(--border-subtle);
}
.todo-list-item__status-badge--completed[data-v-186c9ec5] {
  background: color-mix(in srgb, var(--text-primary) 12%, transparent); /* 완료 탭 - 테마 반대색 */
  color: var(--text-primary);
  border: 1px solid color-mix(in srgb, var(--text-primary) 24%, transparent);
}
.todo-card--status-completed:not(.todo-card--waiting-tab):not(.todo-card--progress-tab):not(.todo-card--review-tab):not(.todo-card--completed-tab) .todo-list-item__status-badge--completed[data-v-186c9ec5] {
  background: var(--surface-primary-soft); /* 전체 탭 초록색 */
  border: 1px solid var(--border-subtle);
}
.todo-list-item__status-badge--cancelled[data-v-186c9ec5] {
  background: var(--surface-muted); /* 회색 */
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
}
.todo-status-badge-arrow[data-v-186c9ec5] {
  margin-left: 4px;
  font-size: 9px;
  opacity: 0.7;
}
.todo-list-item__id-badge[data-v-186c9ec5] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  background: var(--surface-muted);
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  flex-shrink: 0;
  white-space: nowrap;
  font-family: 'Courier New', monospace;
  cursor: text;
  user-select: text;
}
.todo-list-item__separator[data-v-186c9ec5] {
  color: var(--text-tertiary, var(--text-secondary));
}
.todo-list-item__created[data-v-186c9ec5] {
  color: var(--text-tertiary, var(--text-secondary));
}
.todo-list-item__meta-text[data-v-186c9ec5] {
  font-size: 12px;
  line-height: 1.3;
  color: var(--text-tertiary, var(--text-secondary));
  cursor: text;
  user-select: text;
}
html[data-theme='light'] .todo-list-item__meta-text[data-v-186c9ec5],
body[data-theme='light'] .todo-list-item__meta-text[data-v-186c9ec5] {
  color: var(--text-secondary);
}
.todo-list-item__right[data-v-186c9ec5] {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.25rem;
  text-align: right;
  min-width: 120px;
  max-width: 100%;
  overflow: hidden;
  justify-content: flex-start;
  margin-left: auto; /* 오른쪽 영역이 아래로 내려갔을 때 오른쪽 정렬 유지 */
}
.todo-list-item__updated[data-v-186c9ec5] {
  font-size: 12px;
  line-height: 1.3;
  color: var(--text-tertiary, var(--text-secondary));
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  min-height: calc(0.9375rem * 1.4);
  cursor: text;
  user-select: text;
}
html[data-theme='light'] .todo-list-item__updated[data-v-186c9ec5],
body[data-theme='light'] .todo-list-item__updated[data-v-186c9ec5] {
  color: var(--text-secondary);
}
.todo-list-item__updated i[data-v-186c9ec5] {
  font-size: 0.7rem;
  color: var(--text-tertiary, var(--text-secondary));
  opacity: 0.7;
  margin: 0 0.25rem;
}
.todo-list-item__updated i.fa-caret-right[data-v-186c9ec5] {
  margin: 0 0.125rem;
}
.todo-list-item__due-date[data-v-186c9ec5] {
  font-weight: 600;
  font-size: 12px;
  line-height: 1.3;
  color: var(--text-tertiary, var(--text-secondary));
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-wrap: wrap;
  cursor: text;
  user-select: text;
}
html[data-theme='light'] .todo-list-item__due-date[data-v-186c9ec5],
body[data-theme='light'] .todo-list-item__due-date[data-v-186c9ec5] {
  color: var(--text-secondary);
}
.todo-list-item__due-date--clickable[data-v-186c9ec5] {
  cursor: pointer;
  user-select: none;
}
.todo-list-item__due-date i[data-v-186c9ec5] {
  font-size: 0.7rem;
  color: var(--text-tertiary, var(--text-secondary));
  opacity: 0.7;
  flex-shrink: 0;
}
.todo-due-date-unspecified[data-v-186c9ec5] {
  font-weight: normal;
}
.todo-divider[data-v-186c9ec5] {
  font-weight: normal;
}
.todo-due-date-info[data-v-186c9ec5] {
  font-size: 11px;
  color: var(--text-secondary);
  margin-left: 0.25rem;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 0.125rem;
  cursor: text;
  user-select: text;
}
.todo-due-date-info i.fa-caret-right[data-v-186c9ec5] {
  margin: 0 0.125rem;
}

/* 남은 시간 텍스트 스타일 */
.todo-remaining-time[data-v-186c9ec5] {
  position: relative;
  display: inline-block;
  padding: 2px 6px;
  border-radius: 3px;
  z-index: 0;
  cursor: text;
  user-select: text;
}
.todo-remaining-time[data-v-186c9ec5]::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  border-radius: 3px;
  z-index: -1;
  transition: background-color 0.3s ease;
}
.todo-remaining-time[data-v-186c9ec5]::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  width: var(--progress, 0%);
  border-radius: 0 0 3px 3px;
  transition: width 0.3s ease, background-color 0.3s ease;
  z-index: 1;
}
.todo-remaining-time.todo-progress-low[data-v-186c9ec5]::before {
  background-color: var(--surface-success-soft);
}
.todo-remaining-time.todo-progress-low[data-v-186c9ec5]::after {
  background-color: var(--color-success);
}
.todo-remaining-time.todo-progress-medium[data-v-186c9ec5]::before {
  background-color: var(--surface-warning-soft);
}
.todo-remaining-time.todo-progress-medium[data-v-186c9ec5]::after {
  background-color: var(--color-warning);
}
.todo-remaining-time.todo-progress-high[data-v-186c9ec5]::before {
  background-color: var(--surface-orange-soft);
}
.todo-remaining-time.todo-progress-high[data-v-186c9ec5]::after {
  background-color: var(--color-orange);
}

/* 진척율 색상 클래스 */
.todo-progress-bold[data-v-186c9ec5] {
  font-weight: bold;
}
.todo-progress-gap-medium[data-v-186c9ec5] {
  font-weight: bold;
  color: var(--color-orange);
}
.todo-progress-gap-high[data-v-186c9ec5] {
  font-weight: bold;
  color: var(--color-danger); /* 붉은색 */
}
.todo-progress-gap-good[data-v-186c9ec5] {
  font-weight: bold;
  color: var(--success-color); /* 녹색 */
}
.todo-list-item__assignee[data-v-186c9ec5] {
  font-size: 12px;
  line-height: 1.3;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  white-space: nowrap;
  min-height: calc(12px * 1.3);
}

/* 겹쳐진 비교형 프로그래스바 */
.todo-progress-comparison-bar[data-v-186c9ec5] {
  position: relative;
  width: 100%;
  min-width: 200px; /* 최소 너비 확보 */
  height: 3px;
  background: transparent !important; /* 배경 투명 강제 */
  border: none !important;
  border-radius: 0;
  overflow: visible;
  margin-top: 20px; /* 위쪽 콘텐츠와의 간격 */
  margin-bottom: 8px;
  flex-shrink: 0;
}

/* 구분선 (위쪽 라인) */
.todo-progress-comparison-bar[data-v-186c9ec5]::before {
  content: '';
  position: absolute;
  top: -24px; /* 바 텍스트 위로 충분히 올림 */
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--border-color);
  z-index: 0;
}
html[data-theme='dark'] .todo-progress-comparison-bar[data-v-186c9ec5]::before {
  background: var(--border-color);
}
html[data-theme='dark'] .todo-progress-comparison-bar[data-v-186c9ec5] {
  border-top-color: transparent;
}

/* 트랙 배경 (회색 바) */
.todo-progress-comparison-bar[data-v-186c9ec5]::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: var(--border-color);
  border-radius: 2px;
  z-index: 0;
}
.todo-progress-comparison-bar__background[data-v-186c9ec5] {
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  height: 3px;
  background: var(--border-color);
  border-radius: 2px;
  transition: width 0.3s ease;
  z-index: 1;
  overflow: hidden; /* 배경만 overflow hidden */
}
.todo-progress-comparison-bar__foreground[data-v-186c9ec5] {
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  height: 3px;
  border-radius: 2px;
  transition: width 0.3s ease;
  z-index: 2;
  overflow: hidden; /* 전경만 overflow hidden */
  border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-sm);
}
.todo-progress-comparison-bar__foreground.todo-progress-low[data-v-186c9ec5] {
  background: var(--color-success);
}
.todo-progress-comparison-bar__foreground.todo-progress-medium[data-v-186c9ec5] {
  background: var(--color-warning);
}
.todo-progress-comparison-bar__foreground.todo-progress-high[data-v-186c9ec5] {
  background: var(--color-orange);
}

/* 진척율 텍스트 */
.todo-progress-comparison-bar__progress-label[data-v-186c9ec5] {
  position: absolute;
  top: 100%;
  margin-top: 2px;
  transform: translateX(-50%);
  font-size: 9px;
  font-weight: bold;
  white-space: nowrap;
  z-index: 3;
  pointer-events: none;
}
.todo-progress-comparison-bar__progress-label.todo-progress-low[data-v-186c9ec5] {
  color: var(--color-success);
}
.todo-progress-comparison-bar__progress-label.todo-progress-medium[data-v-186c9ec5] {
  color: var(--color-warning);
}
.todo-progress-comparison-bar__progress-label.todo-progress-high[data-v-186c9ec5] {
  color: var(--color-orange);
}

/* 소진율 텍스트 (현재일 마커 아래) */
.todo-progress-comparison-bar__consumption-label[data-v-186c9ec5] {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 2px;
  font-size: 9px;
  font-weight: bold;
  color: var(--primary-color);
  white-space: nowrap;
  z-index: 3;
  pointer-events: none;
}

/* 소진율 100% 이상일 때 붉은색 */
.todo-progress-comparison-bar__consumption-label--overdue[data-v-186c9ec5] {
  color: var(--color-danger) !important;
}
html[data-theme='light'] .todo-progress-comparison-bar[data-v-186c9ec5],
body[data-theme='light'] .todo-progress-comparison-bar[data-v-186c9ec5] {
  background: var(--border-subtle);
}
html[data-theme='light'] .todo-progress-comparison-bar__background[data-v-186c9ec5],
body[data-theme='light'] .todo-progress-comparison-bar__background[data-v-186c9ec5] {
  background: var(--border-color);
}

/* 소진율 100% 이상이고 마감일 초과 시 붉은색 */
.todo-progress-comparison-bar__background--overdue[data-v-186c9ec5] {
  background: var(--color-danger) !important;
}
html[data-theme='light'] .todo-progress-comparison-bar__background--overdue[data-v-186c9ec5],
body[data-theme='light'] .todo-progress-comparison-bar__background--overdue[data-v-186c9ec5] {
  background: var(--color-danger) !important;
}

/* 타임라인 마커 스타일 (세로 막대) */
.todo-progress-comparison-bar__marker[data-v-186c9ec5] {
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  width: auto;
  height: 20px;
  z-index: 15;
  pointer-events: auto;
  /* transform은 동적으로 설정됨 */
  cursor: help;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
}
.todo-progress-comparison-bar__marker-label[data-v-186c9ec5] {
  font-size: 9px;
  font-weight: bold;
  line-height: 1;
  white-space: nowrap;
  user-select: none;
  order: 1;
  position: relative;
  z-index: 2;
  padding: 1px 3px;
  background: var(--card-bg);
  border-radius: 2px;
  margin-bottom: 2px;
}
.todo-progress-comparison-bar__marker-line[data-v-186c9ec5] {
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: calc(100% - 13px);
  z-index: 1;
  transition: all 0.2s ease;
  pointer-events: none;
  order: 2;
}

/* 왼쪽 정렬 마커 - 세로막대를 왼쪽 끝에 */
.todo-progress-comparison-bar__marker--left .todo-progress-comparison-bar__marker-line[data-v-186c9ec5] {
  left: 0;
  transform: translateX(0);
}
.todo-progress-comparison-bar__marker--left .todo-progress-comparison-bar__marker-label[data-v-186c9ec5] {
  align-self: flex-start;
  margin-left: -3px;
}

/* 오른쪽 정렬 마커 - 세로막대를 오른쪽 끝에 */
.todo-progress-comparison-bar__marker--right .todo-progress-comparison-bar__marker-line[data-v-186c9ec5] {
  left: 100%;
  transform: translateX(-2px);
}
.todo-progress-comparison-bar__marker--right .todo-progress-comparison-bar__marker-label[data-v-186c9ec5] {
  align-self: flex-end;
  margin-right: -3px;
}
.todo-progress-comparison-bar__marker--created .todo-progress-comparison-bar__marker-label[data-v-186c9ec5] {
  color: var(--text-tertiary);
}
.todo-progress-comparison-bar__marker--created .todo-progress-comparison-bar__marker-line[data-v-186c9ec5] {
  background-color: var(--text-tertiary);
}
.todo-progress-comparison-bar__marker--started .todo-progress-comparison-bar__marker-label[data-v-186c9ec5] {
  color: var(--color-info);
}
.todo-progress-comparison-bar__marker--started .todo-progress-comparison-bar__marker-line[data-v-186c9ec5] {
  background-color: var(--color-info);
}
.todo-progress-comparison-bar__marker--completed .todo-progress-comparison-bar__marker-label[data-v-186c9ec5] {
  color: var(--success-color);
}
.todo-progress-comparison-bar__marker--completed .todo-progress-comparison-bar__marker-line[data-v-186c9ec5] {
  background-color: var(--success-color);
}
.todo-progress-comparison-bar__marker--reviewed .todo-progress-comparison-bar__marker-label[data-v-186c9ec5] {
  color: var(--color-orange);
}
.todo-progress-comparison-bar__marker--reviewed .todo-progress-comparison-bar__marker-line[data-v-186c9ec5] {
  background-color: var(--color-orange);
}
.todo-progress-comparison-bar__marker--due .todo-progress-comparison-bar__marker-label[data-v-186c9ec5] {
  color: var(--color-danger);
}
.todo-progress-comparison-bar__marker--due .todo-progress-comparison-bar__marker-line[data-v-186c9ec5] {
  background-color: var(--color-danger);
}
.todo-progress-comparison-bar__marker--current .todo-progress-comparison-bar__marker-label[data-v-186c9ec5] {
  color: var(--primary-color);
}
.todo-progress-comparison-bar__marker--current .todo-progress-comparison-bar__marker-line[data-v-186c9ec5] {
  background-color: var(--primary-color);
}
html[data-theme='light'] .todo-list-item__assignee[data-v-186c9ec5],
body[data-theme='light'] .todo-list-item__assignee[data-v-186c9ec5] {
  color: var(--text-primary);
  opacity: 0.9;
}
.todo-assignee-line[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  cursor: text;
  user-select: text;
}
.todo-assignee-line--clickable[data-v-186c9ec5] {
  cursor: pointer;
  user-select: none;
}
.todo-assignee-section[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  gap: 0.2rem;
}
.todo-assignee-separator[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  color: var(--text-tertiary, var(--text-secondary));
  margin: 0 0.125rem;
}
.todo-assignee-separator i[data-v-186c9ec5] {
  font-size: 0.8rem;
  color: var(--text-tertiary, var(--text-secondary));
  opacity: 0.7;
}
.todo-assignee-avatars[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.todo-assignee-avatars .todo-assignee-avatar[data-v-186c9ec5] {
  position: relative;
}
.todo-assignee-avatars-stacked[data-v-186c9ec5] {
  display: inline-block;
  position: relative;
  height: 22px;
  flex-shrink: 0;
}
.todo-assignee-avatar-stacked[data-v-186c9ec5] {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface-muted);
  border: none;
  cursor: pointer;
  position: absolute;
  top: 0;
}
.todo-assignee-avatar-stacked img[data-v-186c9ec5] {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.todo-assignee-avatar-stacked i[data-v-186c9ec5] {
  font-size: 0.65rem;
  color: var(--text-tertiary, var(--text-secondary));
}

/* 이니셜 fallback — 모든 todo-assignee-avatar/stacked 컨테이너에 공통 */
.todo-assignee-initials[data-v-186c9ec5] {
  font-size: 0.65rem;
  font-weight: 600;
  color: var(--text-secondary);
  line-height: 1;
  user-select: none;
}
.todo-assignee-line--clickable .todo-assignee-label-text[data-v-186c9ec5] {
  cursor: pointer;
  user-select: none;
}
.todo-assignee-line--clickable .todo-assignee-name[data-v-186c9ec5] {
  cursor: pointer;
  user-select: none;
}
.todo-assignee-line--clickable .todo-assignee-assign-text[data-v-186c9ec5] {
  cursor: pointer;
  user-select: none;
}
.todo-assignee-line--clickable .todo-assignee-label[data-v-186c9ec5] {
  cursor: pointer;
  user-select: none;
}
.todo-assignee-line--clickable .todo-assignee-separator[data-v-186c9ec5] {
  cursor: pointer;
  user-select: none;
}
.todo-assignee-line--clickable .todo-assignee-separator i[data-v-186c9ec5] {
  cursor: pointer;
}
.todo-assignee-label-text[data-v-186c9ec5] {
  font-size: 0.75rem;
  line-height: 1.3;
  color: var(--text-secondary);
  white-space: nowrap;
  cursor: text;
  user-select: text;
}
html[data-theme='light'] .todo-assignee-label-text[data-v-186c9ec5],
body[data-theme='light'] .todo-assignee-label-text[data-v-186c9ec5] {
  color: var(--text-primary);
  opacity: 0.85;
}
.todo-assignee-label-text--current-user[data-v-186c9ec5] {
  font-weight: 600;
  color: var(--text-primary);
}
.todo-assignee-item[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  gap: 0.2rem;
}
.todo-assignee-avatar[data-v-186c9ec5] {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface-muted);
  border: none;
  cursor: pointer;
  position: relative;
}
.todo-assignee-avatar img[data-v-186c9ec5] {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.todo-assignee-avatar i[data-v-186c9ec5] {
  font-size: 0.65rem;
  color: var(--text-tertiary, var(--text-secondary));
}
.todo-assignee-name[data-v-186c9ec5] {
  font-size: 0.75rem;
  line-height: 1.3;
  color: var(--text-secondary);
  white-space: nowrap;
  cursor: text;
  user-select: text;
}
html[data-theme='light'] .todo-assignee-name[data-v-186c9ec5],
body[data-theme='light'] .todo-assignee-name[data-v-186c9ec5] {
  color: var(--text-primary);
  opacity: 0.85;
}
.todo-assignee-name--current-user[data-v-186c9ec5] {
  font-weight: 600;
  color: var(--text-primary);
}
.todo-assignee-assign-text[data-v-186c9ec5] {
  font-weight: normal;
  color: var(--text-secondary);
  cursor: text;
  user-select: text;
}
html[data-theme='light'] .todo-assignee-assign-text[data-v-186c9ec5],
body[data-theme='light'] .todo-assignee-assign-text[data-v-186c9ec5] {
  color: var(--text-primary);
  opacity: 0.75;
}
.todo-assignee-empty[data-v-186c9ec5] {
  font-size: 0.75rem;
  line-height: 1.3;
  color: var(--text-tertiary, var(--text-secondary));
  font-style: italic;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  cursor: text;
  user-select: text;
}
html[data-theme='light'] .todo-assignee-empty[data-v-186c9ec5],
body[data-theme='light'] .todo-assignee-empty[data-v-186c9ec5] {
  color: var(--text-secondary);
}
.todo-assignee-line--clickable .todo-assignee-empty[data-v-186c9ec5] {
  cursor: pointer;
  user-select: none;
}
.todo-assignee-empty i[data-v-186c9ec5] {
  font-size: 0.7rem;
  opacity: 0.7;
}

/* 실제 탭(전체 탭이 아닌)에서만 상태별 스타일 무시 (탭별 스타일 우선) */
/* 전체 탭에서는 상태별 스타일이 적용되어야 하므로 이 규칙은 실제 탭에서만 적용 */

/* 만료된 TODO 텍스트 스타일 */
.todo-overdue-text[data-v-186c9ec5] {
  background: transparent;
  color: var(--color-danger-hover); /* danger보다 어두운 색 의도 */
  padding: 0;
  border-radius: 0;
  font-weight: 600;
  display: inline-block;
}
.todo-completion-early[data-v-186c9ec5] {
  color: var(--color-success); /* 초록색 - 선행 */
  font-weight: 600;
}
.todo-completion-delayed[data-v-186c9ec5] {
  color: var(--color-danger-hover); /* 붉은색 - 지연 */
  font-weight: 600;
}
.tag-priority[data-v-186c9ec5] {
  border-left: none !important;
}

/* 오른쪽 영역이 아래로 내려갈 때 간격 조정 (863px 이하) */
@media (max-width: 863px) {
.todo-list-item[data-v-186c9ec5] {
    gap: 0.5rem; /* 간격을 줄여서 높이 최소화 */
    align-items: flex-start; /* 상단 정렬로 불필요한 높이 증가 방지 */
}
.todo-list-item__content[data-v-186c9ec5] {
    flex: 1 1 auto; /* flex-basis를 auto로 변경하여 불필요한 높이 증가 방지 */
    align-self: flex-start; /* 상단 정렬로 높이 최소화 */
    width: 100%; /* 전체 너비 차지 */
}
.todo-list-item__right[data-v-186c9ec5] {
    width: 100%; /* 전체 너비를 차지하여 간격 최소화 */
    margin-left: auto; /* 항상 오른쪽 정렬 유지 */
    align-self: flex-start; /* 상단 정렬로 높이 최소화 */
    align-items: flex-end; /* 오른쪽 정렬 유지 */
    text-align: right; /* 텍스트 오른쪽 정렬 유지 */
}
.todo-list-item__right .todo-list-item__updated[data-v-186c9ec5],
  .todo-list-item__right .todo-list-item__due-date[data-v-186c9ec5],
  .todo-list-item__right .todo-list-item__assignee[data-v-186c9ec5] {
    justify-content: flex-end; /* 내부 요소들도 오른쪽 정렬 */
}
}

/* 모바일(폰) 화면에서 반응형 레이아웃 조정 */
@media (max-width: 768px) {
  /* 태블릿 */
.todo-list-item__right[data-v-186c9ec5] {
    min-width: 100px;
}
.todo-list-item__updated[data-v-186c9ec5] {
    font-size: 11px;
}
.todo-list-item__due-date[data-v-186c9ec5] {
    font-size: 11px;
}
}
@media (max-width: 480px) {
.todo-header[data-v-186c9ec5] {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
}
.todo-header-right[data-v-186c9ec5] {
    width: 100%;
    justify-content: flex-start;
    gap: 0.5rem;
}
.todo-row[data-v-186c9ec5] {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
}
.todo-row .left[data-v-186c9ec5],
  .todo-row .right[data-v-186c9ec5] {
    white-space: normal;
    text-align: left;
}
.todo-list-item__badges[data-v-186c9ec5] {
    flex-wrap: wrap;
}
.todo-list-item__icon[data-v-186c9ec5] {
    display: none;
}
.todo-list-item__title-row[data-v-186c9ec5] {
    flex-direction: row;
    align-items: flex-start;
    gap: 0.375rem;
    flex-wrap: wrap;
}
.todo-list-item__title-prefix[data-v-186c9ec5] {
    flex-shrink: 0;
    flex: 1 1 100%;
    min-width: 0;
}
.todo-list-item__title[data-v-186c9ec5] {
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
    overflow: hidden;
    text-overflow: ellipsis;
}
.todo-list-item__badges[data-v-186c9ec5] {
    flex: 1 1 100%;
    width: 100%;
}
.todo-list-item__updated[data-v-186c9ec5] {
    font-size: 11px;
    white-space: normal;
    flex-wrap: wrap;
    gap: 0.125rem;
    justify-content: flex-end;
    text-align: right;
}
.todo-list-item__due-date[data-v-186c9ec5] {
    font-size: 11px;
    flex-wrap: wrap;
    justify-content: flex-end;
    text-align: right;
}
.todo-due-date-info[data-v-186c9ec5] {
    white-space: normal;
    flex-wrap: wrap;
    margin-left: 0;
    margin-top: 0.125rem;
    justify-content: flex-end;
}
.todo-assignee-line[data-v-186c9ec5] {
    flex-wrap: wrap;
    gap: 0.375rem;
    justify-content: flex-end;
}
.todo-list-item__assignee[data-v-186c9ec5] {
    white-space: normal;
    justify-content: flex-end;
    text-align: right;
}
.todo-list-item__meta-text[data-v-186c9ec5] {
    font-size: 11px;
    word-break: break-word;
}
}

/* 진척도 입력 그룹 */
.progress-input-group[data-v-186c9ec5] {
  margin-bottom: 1rem;
  display: flex;
  flex-direction: column;
}
.progress-label[data-v-186c9ec5] {
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: 0.5rem;
}
.progress-value-display[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  justify-content: center;
  margin-top: 0.75rem;
}
.progress-slider[data-v-186c9ec5] {
  width: 100%;
  height: 6px;
  border-radius: 3px;
  background: var(--surface-muted);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  margin-top: 0.5rem;
}
.progress-slider[data-v-186c9ec5]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--primary-color);
  cursor: pointer;
  border: 2px solid var(--surface-color);
  box-shadow: var(--shadow-sm);
  transition: all 0.2s ease;
}
.progress-slider[data-v-186c9ec5]::-webkit-slider-thumb:hover {
  transform: scale(1.1);
  box-shadow: var(--shadow-md);
}
.progress-slider[data-v-186c9ec5]::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--primary-color);
  cursor: pointer;
  border: 2px solid var(--surface-color);
  box-shadow: var(--shadow-sm);
  transition: all 0.2s ease;
}
.progress-slider[data-v-186c9ec5]::-moz-range-thumb:hover {
  transform: scale(1.1);
  box-shadow: var(--shadow-md);
}
.progress-input[data-v-186c9ec5] {
  width: 60px;
  min-width: 60px;
  flex-shrink: 0;
  padding: 0.375rem 0.5rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--surface-muted);
  color: var(--text-primary);
  font-size: 0.875rem;
  text-align: center;
  -moz-appearance: textfield;
  appearance: textfield;
}
.progress-input[data-v-186c9ec5]::-webkit-outer-spin-button,
.progress-input[data-v-186c9ec5]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.progress-input[data-v-186c9ec5]:focus {
  outline: none;
  border-color: var(--primary-color);
  background: var(--surface-primary-soft);
}
.progress-percent[data-v-186c9ec5] {
  font-size: 0.875rem;
  color: var(--text-secondary);
  font-weight: 500;
  flex-shrink: 0;
  white-space: nowrap;
}
.todo-progress--clickable[data-v-186c9ec5] {
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.todo-progress--clickable[data-v-186c9ec5]:hover {
  opacity: 0.8;
}
.todo-list-item__due-date--clickable[data-v-186c9ec5] {
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.todo-list-item__due-date--clickable[data-v-186c9ec5]:hover {
  opacity: 0.8;
}

/* 우선순위/진척도 팝업 */
.priority-popup-overlay[data-v-186c9ec5] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}
.priority-popup[data-v-186c9ec5] {
  width: 100%;
  max-width: 280px;
  margin: 0 1rem;
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
}
.priority-popup__header[data-v-186c9ec5] {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-subtle);
}
.priority-popup__title[data-v-186c9ec5] {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
}
.priority-popup__body[data-v-186c9ec5] {
  padding: 1rem;
}
.priority-popup__footer[data-v-186c9ec5] {
  padding: 0.75rem 1rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  border-top: 1px solid var(--border-subtle);
}

/* .priority-popup__btn → AppButton variant="secondary/primary" size="sm" */
.priority-popup__btn[data-v-186c9ec5] {
  min-width: 80px;
}
.progress-input-group[data-v-186c9ec5] {
  margin-bottom: 1rem;
}
.progress-label[data-v-186c9ec5] {
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: 0.5rem;
}
.progress-slider[data-v-186c9ec5] {
  width: 100%;
  height: 6px;
  border-radius: 3px;
  background: var(--surface-muted);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  margin-bottom: 0.75rem;
}
.progress-slider[data-v-186c9ec5]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--primary-color);
  cursor: pointer;
  border: 2px solid var(--surface-color);
  box-shadow: var(--shadow-sm);
  transition: all 0.2s ease;
}
.progress-slider[data-v-186c9ec5]::-webkit-slider-thumb:hover {
  transform: scale(1.1);
  box-shadow: var(--shadow-md);
}
.progress-slider[data-v-186c9ec5]::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--primary-color);
  cursor: pointer;
  border: 2px solid var(--surface-color);
  box-shadow: var(--shadow-sm);
  transition: all 0.2s ease;
}
.progress-slider[data-v-186c9ec5]::-moz-range-thumb:hover {
  transform: scale(1.1);
  box-shadow: var(--shadow-md);
}
.progress-value-display[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  justify-content: center;
}
.progress-input[data-v-186c9ec5] {
  width: 60px;
  min-width: 60px;
  flex-shrink: 0;
  padding: 0.375rem 0.5rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--surface-muted);
  color: var(--text-primary);
  font-size: 0.875rem;
  text-align: center;
  -moz-appearance: textfield;
  appearance: textfield;
}
.progress-input[data-v-186c9ec5]::-webkit-outer-spin-button,
.progress-input[data-v-186c9ec5]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.progress-input[data-v-186c9ec5]:focus {
  outline: none;
  border-color: var(--primary-color);
  background: var(--surface-primary-soft);
}
.progress-percent[data-v-186c9ec5] {
  font-size: 0.875rem;
  color: var(--text-secondary);
  font-weight: 500;
  flex-shrink: 0;
  white-space: nowrap;
}
.priority-reason-group[data-v-186c9ec5] {
  margin-top: 1rem;
}
.priority-reason-label[data-v-186c9ec5] {
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: 0.375rem;
}
.priority-reason-input[data-v-186c9ec5] {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  font-size: 0.8rem;
  font-family: inherit;
  transition: all 0.2s ease;
}
.priority-reason-input[data-v-186c9ec5]:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.priority-reason-input[data-v-186c9ec5]::placeholder {
  color: var(--text-tertiary);
}
@media (max-width: 480px) {
.priority-popup[data-v-186c9ec5] {
    margin: 0 0.75rem;
}
}

/* 담당자/검토자 지정 팝업 */
.assignee-popup-overlay[data-v-186c9ec5] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
}
.assignee-popup[data-v-186c9ec5] {
  background: var(--surface-color);
  border-radius: 12px;
  box-shadow: var(--shadow-modal);
  width: 90%;
  max-width: 500px;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.assignee-popup__header[data-v-186c9ec5] {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-subtle);
}
.assignee-popup__title[data-v-186c9ec5] {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
}
.assignee-popup__body[data-v-186c9ec5] {
  padding: 1rem;
  overflow-y: auto;
  flex: 1;
}
.assignee-selector-container[data-v-186c9ec5] {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 1rem;
  min-height: 250px;
}
.assignee-column[data-v-186c9ec5] {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--surface-color-secondary);
  overflow: hidden;
}
.assignee-column--center[data-v-186c9ec5] {
  flex: 0 0 80px;
  border: none;
  background: transparent;
  justify-content: center;
}
.assignee-column__header[data-v-186c9ec5] {
  padding: 0.25rem 0.5rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-muted);
}
.assignee-column__header--reviewer[data-v-186c9ec5] {
  margin-top: 0.75rem;
  border-top: 1px solid var(--border-color);
}
.assignee-column__title[data-v-186c9ec5] {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--text-primary);
}
.assignee-column__search[data-v-186c9ec5] {
  position: relative;
  padding: 0.1rem;
  border-bottom: none;
}
.assignee-search-input[data-v-186c9ec5] {
  width: 100%;
  padding: 0.5rem 2rem 0.5rem 1.75rem;
  border-radius: 6px;
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  font-size: 0.75rem;
  font-family: inherit;
  transition: all 0.2s ease;
}
.assignee-search-input[data-v-186c9ec5]:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.assignee-search-input[data-v-186c9ec5]::placeholder {
  color: var(--text-tertiary);
}
.assignee-search-icon[data-v-186c9ec5] {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-tertiary);
  font-size: 0.75rem;
}
.assignee-search-icon--left[data-v-186c9ec5] {
  left: 0.5rem;
  pointer-events: none;
}
.assignee-search-icon--right[data-v-186c9ec5] {
  right: 0.5rem;
  cursor: pointer;
  transition: color 0.2s ease;
}
.assignee-search-icon--right[data-v-186c9ec5]:hover {
  color: var(--text-primary);
}
.assignee-search-clear[data-v-186c9ec5] {
  pointer-events: auto;
}
.assignee-loading[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem;
  color: var(--text-tertiary);
  font-size: 0.7rem;
}
.assignee-loading i[data-v-186c9ec5] {
  font-size: 0.7rem;
}
.assignee-column__body[data-v-186c9ec5] {
  flex: 1;
  overflow-y: auto;
  padding: 0.2rem;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.assignee-column__body--assignees[data-v-186c9ec5] {
  flex: 1;
  min-height: 0;
}
.assignee-column__body--reviewer[data-v-186c9ec5] {
  flex: 0 0 auto;
  min-height: 2.5rem;
  overflow: hidden;
}
.assignee-column__body--reviewer .assignee-user-list[data-v-186c9ec5] {
  max-height: none;
  overflow: visible;
}
.assignee-column__body--reviewer .assignee-user-item[data-v-186c9ec5] {
  margin-bottom: 0;
}
.assignee-column__body--assignees[data-v-186c9ec5] {
  flex: 1;
  min-height: 0;
}
.assignee-no-users[data-v-186c9ec5] {
  padding: 0.75rem;
  text-align: center;
  color: var(--text-tertiary);
  font-size: 0.7rem;
}
.assignee-user-list[data-v-186c9ec5] {
  max-height: 120px;
  overflow-y: auto;
  background: var(--surface-color-secondary);
  padding: 0.2rem;
}
.assignee-user-item[data-v-186c9ec5] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.5rem;
  cursor: pointer;
  transition: background 0.2s ease;
  margin-bottom: 0.125rem;
}
.assignee-user-item[data-v-186c9ec5]:hover {
  background: var(--surface-hover);
}
.assignee-user-item--selected[data-v-186c9ec5] {
  background: var(--surface-primary-soft);
  border: 1px solid var(--primary-color);
}
.assignee-user-item--selected[data-v-186c9ec5]:hover {
  background: var(--surface-primary-soft);
}
.assignee-actions[data-v-186c9ec5] {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.5rem 0;
}
.assignee-actions-divider[data-v-186c9ec5] {
  width: 100%;
  height: 1px;
  background: var(--border-color);
  margin: 0.5rem 0;
}
.assignee-action-btn[data-v-186c9ec5] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: 0.35rem 0.5rem;
  border-radius: 6px;
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 0.7rem;
}
.assignee-action-btn[data-v-186c9ec5]:hover:not(:disabled) {
  background: var(--primary-color);
  border-color: var(--primary-color);
  color: var(--color-white);
}
.assignee-action-btn[data-v-186c9ec5]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.assignee-action-btn i[data-v-186c9ec5] {
  font-size: 0.85rem;
}
.assignee-action-label[data-v-186c9ec5] {
  font-size: 0.65rem;
  font-weight: 500;
}
.assignee-action-btn--clear-all[data-v-186c9ec5] {
  margin-top: 0;
  margin-bottom: 0;
}
.assignee-action-btn--clear-all[data-v-186c9ec5]:hover:not(:disabled) {
  background: var(--color-danger);
  border-color: var(--color-danger);
  color: var(--color-white);
}
.assignee-empty[data-v-186c9ec5] {
  padding: 0.5rem 0.75rem;
  text-align: center;
  color: var(--text-tertiary);
  font-size: 0.7rem;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
}
.assignee-user-avatar[data-v-186c9ec5] {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--surface-muted);
  display: flex;
  align-items: center;
  justify-content: center;
}
.assignee-user-avatar img[data-v-186c9ec5] {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.assignee-user-avatar i[data-v-186c9ec5] {
  color: var(--text-tertiary);
  font-size: 0.75rem;
}
.assignee-user-name[data-v-186c9ec5] {
  flex: 1;
  color: var(--text-primary);
  font-size: 0.75rem;
}
.assignee-select[data-v-186c9ec5] {
  width: 100%;
  padding: 0.75rem;
  border-radius: 8px;
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  font-size: 0.9rem;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s ease;
}
.assignee-select[data-v-186c9ec5]:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.assignee-reason-group[data-v-186c9ec5] {
  margin-top: 0.75rem;
}
.assignee-reason-label[data-v-186c9ec5] {
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: 0.375rem;
}
.assignee-reason-input[data-v-186c9ec5] {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  font-size: 0.8rem;
  font-family: inherit;
  transition: all 0.2s ease;
}
.assignee-reason-input[data-v-186c9ec5]:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.assignee-reason-input[data-v-186c9ec5]::placeholder {
  color: var(--text-tertiary);
}
.assignee-popup__footer[data-v-186c9ec5] {
  padding: 0.75rem 1rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  border-top: 1px solid var(--border-subtle);
}
.assignee-popup__btn[data-v-186c9ec5] {
  min-width: 80px;
  padding: 0.4rem 0.9rem;
  border-radius: 6px;
  border: 1px solid transparent;
  font-size: 0.85rem;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s ease;
}
.assignee-popup__btn--cancel[data-v-186c9ec5] {
  background: var(--surface-muted);
  color: var(--text-secondary);
  border-color: var(--border-color);
}
.assignee-popup__btn--cancel[data-v-186c9ec5]:hover {
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  border-color: var(--border-color);
}
.assignee-popup__btn--confirm[data-v-186c9ec5] {
  background: var(--primary-color);
  color: var(--color-white);
}
.assignee-popup__btn--confirm[data-v-186c9ec5]:hover {
  filter: brightness(1.05);
}
.assignee-popup__btn[data-v-186c9ec5]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.todo-assignee-line--clickable[data-v-186c9ec5] {
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.todo-card--completed-tab .todo-assignee-label-text[data-v-186c9ec5],
.todo-card--completed-tab .todo-assignee-name[data-v-186c9ec5],
.todo-card--completed-tab .todo-assignee-empty[data-v-186c9ec5] {
  cursor: text;
  user-select: text;
}
.todo-assignee-line--clickable[data-v-186c9ec5]:hover {
  opacity: 0.8;
}
@media (max-width: 480px) {
.assignee-popup[data-v-186c9ec5] {
    margin: 0 0.75rem;
}
}

/* 삭제 팝업 */

/* 삭제 버튼 → AppButton icon-only variant="ghost" size="xs" */
.todo-delete-btn[data-v-186c9ec5] {
  margin-left: 0.17rem;
  flex-shrink: 0;
  color: var(--color-danger) !important;
}
.todo-delete-btn[data-v-186c9ec5]:hover {
  color: var(--color-danger) !important;
}
.todo-delete-btn--title-row[data-v-186c9ec5] {
  margin-left: 0.375rem;
  vertical-align: middle;
}
@media (max-width: 480px) {
.delete-popup[data-v-186c9ec5] {
    margin: 0 0.75rem;
}
.todo-progress-comparison-bar[data-v-186c9ec5] {
    min-width: 150px; /* 모바일에서 최소 너비 조정 */
}
.todo-progress-comparison-bar__marker-label[data-v-186c9ec5] {
    font-size: 8px; /* 모바일에서 이니셜 크기 축소 */
    padding: 0.5px 2px;
}
}

.todo-list-view-wrapper[data-v-40e7cd4d] {
  display: flex;
  flex-direction: column;
  height: 100%;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  gap: 0;
}
.todo-list-view-wrapper[data-v-40e7cd4d] .list-view {
  height: 100%;
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
}

/* 추가 상세 필터 그룹은 공통 컴포넌트 DetailFilterField 로 이관 */
.todo-grid[data-v-40e7cd4d] {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.todo-list-view-wrapper[data-v-40e7cd4d] {
  display: flex;
  flex-direction: column;
  height: 100%;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  gap: 0;
}
.todo-list-view-content[data-v-40e7cd4d] {
  display: flex;
  flex-direction: row;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  gap: 0.75rem;
  align-items: stretch;
}
.todo-list-view-wrapper--bulk-mode .todo-list-view-main[data-v-40e7cd4d] {
  flex: 1 1 auto;
  min-width: 0;
}
.todo-list-view-main[data-v-40e7cd4d] {
  display: flex;
  flex-direction: column;
  height: 100%;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}
.todo-list-view-wrapper[data-v-40e7cd4d] .list-view {
  height: 100%;
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
}
.todo-list-view-wrapper--bulk-mode[data-v-40e7cd4d] .list-view {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  height: 100%;
}
.todo-list-view-wrapper--bulk-mode[data-v-40e7cd4d] .list-view__toolbar {
  flex: 0 0 auto;
  flex-shrink: 0;
}
.todo-list-view-wrapper--bulk-mode[data-v-40e7cd4d] .list-view__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}
.todo-list-view-wrapper--bulk-mode .todo-list-view-main[data-v-40e7cd4d] {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.todo-list-view-wrapper--bulk-mode .todo-list-view-main[data-v-40e7cd4d] .list-view {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.todo-list-view-wrapper--bulk-mode .todo-list-view-main[data-v-40e7cd4d] .list-view__toolbar,
.todo-list-view-wrapper--bulk-mode .todo-list-view-main[data-v-40e7cd4d] .list-view__body {
  flex-shrink: 0;
}
.todo-list-view-wrapper--bulk-mode .todo-list-view-main[data-v-40e7cd4d] .list-view__body {
  flex: 1 1 auto;
  min-height: 0;
}
.todo-list-view-wrapper--bulk-mode[data-v-40e7cd4d] .list-view__pagination {
  flex: 0 0 auto;
  flex-shrink: 0;
  margin-top: 0;
  position: relative;
  z-index: 10;
}

/* 일괄편집 패널 */
.todo-bulk-panel[data-v-40e7cd4d] {
  flex: 0 0 auto;
  /* 컨트롤이 보기 좋게 들어가는 최소/최대 너비 범위 */
  min-width: 220px;
  max-width: 260px;
  display: flex;
  flex-direction: column;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  overflow: hidden;
  align-self: stretch;
  height: 100%;
  max-height: 100%;
  position: sticky;
  top: 0;
  z-index: 1;
  transition: all 0.3s ease;
  color: var(--text-primary);
  min-height: 0;
}
.todo-bulk-panel__header[data-v-40e7cd4d] {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 1rem 1.25rem 0.5rem;
  border-bottom: 1px solid var(--border-subtle);
  background: var(--surface-color);
  flex-shrink: 0;
}
.todo-bulk-panel__title[data-v-40e7cd4d] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.todo-bulk-panel__section[data-v-40e7cd4d] {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0.75rem 1.25rem;
  background: var(--surface-color);
  display: flex;
  flex-direction: column;
  gap: 0;
}
.todo-bulk-panel__section[data-v-40e7cd4d] {
  scrollbar-width: thin;
  scrollbar-color: var(--border-color) transparent;
}
.todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar {
  width: 8px;
  height: 8px;
  -webkit-appearance: none;
  display: block;
}
.todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 5px;
  -webkit-box-shadow: none;
}
.todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 999px;
  border: 2px solid transparent;
  -webkit-box-shadow: none;
}
.todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-thumb:hover {
  background: var(--text-secondary);
}
.todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-thumb:active {
  background: var(--text-secondary);
}
html[data-theme='dark'] .todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-thumb,
body[data-theme='dark'] .todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
}
html[data-theme='dark'] .todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-thumb:hover,
body[data-theme='dark'] .todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}
html[data-theme='dark'] .todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-track,
body[data-theme='dark'] .todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-track {
  background: var(--surface-color);
  -webkit-box-shadow: none;
}
html[data-theme='light'] .todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-thumb,
body[data-theme='light'] .todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
}
html[data-theme='light'] .todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-thumb:hover,
body[data-theme='light'] .todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}
html[data-theme='light'] .todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-track,
body[data-theme='light'] .todo-bulk-panel__section[data-v-40e7cd4d]::-webkit-scrollbar-track {
  background: var(--surface-color);
  -webkit-box-shadow: none;
}
.todo-bulk-panel__group[data-v-40e7cd4d] {
  margin-bottom: 0;
}
.todo-bulk-panel__group-title[data-v-40e7cd4d] {
  margin: 0 0 0.5rem 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
}
.todo-bulk-panel__selection-controls[data-v-40e7cd4d] {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

/* .todo-bulk-panel__btn → AppButton variant="secondary" size="sm" */
.todo-bulk-panel__selection-count[data-v-40e7cd4d] {
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-top: 0.5rem;
}
.todo-bulk-panel__divider[data-v-40e7cd4d] {
  height: 1px;
  background: var(--border-color);
  margin: 0.75rem 0;
  width: 100%;
}
.todo-bulk-panel__action-buttons[data-v-40e7cd4d] {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.todo-bulk-panel__action-buttons--spaced[data-v-40e7cd4d] {
  margin-top: 0.75rem;
}
.todo-bulk-panel__action-buttons--spaced[data-v-40e7cd4d] {
  margin-top: 0.75rem;
}
.todo-bulk-panel__icon-btn[data-v-40e7cd4d] {
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: var(--surface-color);
  color: var(--text-secondary);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.todo-bulk-panel__icon-btn[data-v-40e7cd4d]:hover {
  background: var(--bg-hover);
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.todo-bulk-panel__icon-btn--danger[data-v-40e7cd4d] {
  color: var(--color-danger-hover);
}
.todo-bulk-panel__icon-btn--danger[data-v-40e7cd4d]:hover {
  border-color: var(--color-danger-hover);
  color: var(--color-danger-hover);
}

/* .todo-bulk-panel__*-btn → AppButton variant="secondary/danger" size="sm" */
.todo-bulk-panel__select-all-results[data-v-40e7cd4d] {
  margin-top: 0.5rem;
}
.todo-bulk-panel__checkbox-label[data-v-40e7cd4d] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  color: var(--text-primary);
  cursor: pointer;
}
.todo-bulk-panel__checkbox[data-v-40e7cd4d] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: var(--primary-color);
}

/* 대기 탭일 때는 리스트 형태 */
.todo-grid--list[data-v-40e7cd4d] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
@media (max-width: 600px) {
.todo-grid[data-v-40e7cd4d] {
    grid-template-columns: 1fr;
}
}
.todo-page__placeholder[data-v-40e7cd4d] {
  margin: 0;
  padding: 1.5rem 0.5rem;
  font-size: 0.9rem;
  color: var(--text-secondary);
  text-align: center;
  line-height: 1.6;
}

/* 카드 오른쪽 영역 반응형 배치
   - 일반 모드: 600px 이하에서 오른쪽 영역이 아래로 내려감
   - 일괄 설정 모드: 패널(250px) + gap(16px) + 카드 최소 너비(600px)를 고려해 866px 이하에서 세로 배치 */
@media (max-width: 600px) {
.todo-list-view-wrapper[data-v-40e7cd4d] .todo-list-item {
    flex-direction: column;
    gap: 0.5rem;
}
.todo-list-view-wrapper[data-v-40e7cd4d] .todo-list-item__right {
    align-items: flex-end;
    text-align: right;
    min-width: auto;
    width: 100%;
}
.todo-list-view-wrapper[data-v-40e7cd4d] .todo-list-item__updated {
    justify-content: flex-end;
    text-align: right;
}
}
@media (max-width: 866px) {
.todo-list-view-wrapper--bulk-mode[data-v-40e7cd4d] .todo-list-item {
    flex-direction: column;
    gap: 0.5rem;
}
.todo-list-view-wrapper--bulk-mode[data-v-40e7cd4d] .todo-list-item__right {
    align-items: flex-end;
    text-align: right;
    min-width: auto;
    width: 100%;
}
.todo-list-view-wrapper--bulk-mode[data-v-40e7cd4d] .todo-list-item__updated {
    justify-content: flex-end;
    text-align: right;
}
.todo-list-view-wrapper--bulk-mode[data-v-40e7cd4d] .todo-list-item__due-date {
    justify-content: flex-end;
    text-align: right;
}
.todo-list-view-wrapper--bulk-mode[data-v-40e7cd4d] .todo-list-item__assignee {
    justify-content: flex-end;
    text-align: right;
}
}

.page[data-v-3567d4e7] {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex: 1 1 auto;
  min-height: 0;
}
.page__header h2[data-v-3567d4e7] {
  margin: 0;
}
.page__desc[data-v-3567d4e7] {
  margin: 0.5rem 0 0;
  color: var(--text-secondary);
}
.page__card[data-v-3567d4e7] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.25rem;
}
@media (max-width: 768px) {
.page__desc[data-v-3567d4e7] {
    font-size: 0.9rem;
    line-height: 1.5;
    margin-top: 0.25rem;
}
}
@media (max-width: 480px) {
.page__card[data-v-3567d4e7] {
    padding: 0.5rem;
}
}
.todo-page-root[data-v-3567d4e7] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  gap: 0 !important;
}
.todo-page-root > .page__header[data-v-3567d4e7] {
  margin-top: 0;
}
.todo-page-root .page__desc[data-v-3567d4e7] {
  margin-top: 0;
}
.todo-page[data-v-3567d4e7] {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
  flex: 1 1 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.todo-page-root .page__card[data-v-3567d4e7] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0 !important;
  background: transparent;
  border: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.todo-page__tabs[data-v-3567d4e7] {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.todo-page__tab-header[data-v-3567d4e7] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
}
.todo-page__header-actions[data-v-3567d4e7] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-right: 0.75rem;
  flex-shrink: 0;
}

/* 시각 스타일은 AppButton이 담당 — 클래스는 레이아웃 훅용으로만 존재 */
.todo-page__tab-panels[data-v-3567d4e7] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: var(--surface-color);
  overflow: hidden;
  position: relative;
  padding: 0.75rem;
  touch-action: pan-y pinch-zoom; /* 수직 스크롤은 허용, 수평 스와이프는 제어 */
}
.todo-page__tab-panel[data-v-3567d4e7] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
  position: relative;
}
@media (max-width: 480px) {
.todo-page__tab-header[data-v-3567d4e7] {
    flex-direction: column;
    align-items: stretch;
}

  /* 모바일에서 헤더 액션 버튼 숨김 */
.todo-page__header-actions[data-v-3567d4e7] {
    display: none;
}
.todo-page__tab-panels[data-v-3567d4e7] {
    padding: 0.5rem;
}
}
@media (max-width: 480px) {
.todo-page__tab-panels[data-v-3567d4e7] {
    padding: 0.25rem;
}
}

.monaco-editor-container[data-v-c0297860] {
  width: 100%;
  height: 100%;
  /* 탭 영역에서 에디터가 꽉 차도록 보더/라운드 제거 */
  border: none;
  border-radius: 0;
  overflow: hidden;
  /* Canvas 최대 크기 제한 방지 */
  max-height: 16384px;
  min-height: 0;
  /* flex 레이아웃에서 제대로 작동하도록 */
  flex: 1;
}

/* 원격 선택 영역 스타일 (scoped가 아닌 전역 스타일) */
.monaco-editor .remote-selection {
  background-color: var(--surface-info-soft);
}
.monaco-editor .remote-selection-inline {
  background-color: var(--surface-info-soft);
}

.terminal-wrapper[data-v-28982510] {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.terminal-toolbar[data-v-28982510] {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 10;
  display: flex;
  /* DOM 역순 + row-reverse → 시각상 [검색창 ∧ ∨ count 복사 지우개 >].
     DOM 마지막(검색창)이 가장 먼저 넘침 → 좁아지면 검색창부터 하나씩
     아랫줄로. 오른쪽 버튼(>)은 윗줄 우측 고정. */
  flex-direction: row-reverse;
  flex-wrap: wrap;
  max-width: calc(100% - 1.5rem);
  gap: 0.5rem;
  padding: 0.25rem;
  background: var(--backdrop-bg);
  backdrop-filter: blur(4px);
  border-radius: 0.375rem;
  box-shadow: var(--shadow-sm);
}
html[data-theme='light'] .terminal-toolbar[data-v-28982510],
body[data-theme='light'] .terminal-toolbar[data-v-28982510] {
  background: var(--surface-color);
  box-shadow: var(--shadow-sm);
}
html[data-theme='dark'] .terminal-toolbar[data-v-28982510],
body[data-theme='dark'] .terminal-toolbar[data-v-28982510] {
  background: var(--backdrop-bg);
  box-shadow: var(--shadow-sm);
}
.terminal-toolbar-toggle[data-v-28982510] {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 10;
  padding: 0.25rem;
  background: var(--backdrop-bg);
  backdrop-filter: blur(4px);
  border-radius: 0.375rem;
  box-shadow: var(--shadow-sm);
}
html[data-theme='light'] .terminal-toolbar-toggle[data-v-28982510],
body[data-theme='light'] .terminal-toolbar-toggle[data-v-28982510] {
  background: var(--surface-color);
  box-shadow: var(--shadow-sm);
}
html[data-theme='dark'] .terminal-toolbar-toggle[data-v-28982510],
body[data-theme='dark'] .terminal-toolbar-toggle[data-v-28982510] {
  background: var(--backdrop-bg);
  box-shadow: var(--shadow-sm);
}

/* 검색 영역은 AppSearchInput 이 모양·동작을 가지므로 wrapper 폭만 — 좁아질 때 wrap 의 첫 항목이 됨. */
.search-input-wrapper[data-v-28982510] {
  width: 200px;
  /* 부모가 200px 미만이어도 부모를 넘쳐 input 이 깨지지 않게 — 부모 한도 내에서 표시 */
  max-width: 100%;
}
.search-input-wrapper[data-v-28982510] .app-search {
  width: 100%;
  min-width: 0;
}
.search-input-wrapper[data-v-28982510] .app-search__input {
  min-width: 0;
}
.toolbar-btn[data-v-28982510] {
  height: var(--control-height-md);
  box-sizing: border-box;
  padding: 0 0.5rem;
  border: 1px solid var(--border-color);
  border-radius: 0.25rem;
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.icon-small[data-v-28982510] {
  font-size: 1.125rem;
  line-height: 1;
}
.toolbar-btn[data-v-28982510]:hover:not(:disabled) {
  background: var(--surface-color-hover);
  border-color: var(--primary-color);
}
.toolbar-btn[data-v-28982510]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.copy-btn[data-v-28982510] {
  padding: 0.25rem 0.75rem;
}
.terminal-output-container[data-v-28982510] {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 0.75rem;
  /* 툴바가 absolute로 위치하므로 padding-top 불필요 */
  /* 얇은 스크롤바 스타일 */
  scrollbar-width: thin;
  scrollbar-color: var(--border-color) var(--surface-color-secondary);
}
.terminal-output-container[data-v-28982510]::-webkit-scrollbar {
  width: 6px;
}
.terminal-output-container[data-v-28982510]::-webkit-scrollbar-track {
  background: var(--surface-color-secondary);
}
.terminal-output-container[data-v-28982510]::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 3px;
}
.terminal-output-container[data-v-28982510]::-webkit-scrollbar-thumb:hover {
  background: var(--text-secondary);
}
.terminal-output[data-v-28982510] {
  margin: 0;
  font-family: 'Courier New', 'Consolas', 'Monaco', 'Menlo', 'D2Coding', 'Nanum Gothic Coding', monospace;
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--text-primary);
  white-space: pre-wrap;
  word-wrap: break-word;
  font-weight: 400 !important;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* 모든 하위 요소에도 동일한 폰트 굵기 강제 적용 */
.terminal-output[data-v-28982510] * {
  font-weight: 400 !important;
  font-synthesis: none;
}

/* ANSI 변환 후 기본 텍스트 색상 보장 - 색상이 없는 경우만 기본 색상 적용 */
/* 인라인 스타일이 있는 경우는 ANSI 색상을 유지 */
.terminal-output[data-v-28982510] span:not([style*="color"]) {
  color: var(--text-primary) !important;
}

/* 텍스트 노드도 기본 색상 적용 (부모에 색상이 없는 경우) */
.terminal-output[data-v-28982510] {
  color: var(--text-primary);
}

/* 검색 하이라이트 */
.terminal-output[data-v-28982510] mark.search-highlight {
  background-color: var(--surface-warning-soft);
  padding: 0;
  border-radius: 2px;
  transition: background-color 0.2s ease;
}
.terminal-output[data-v-28982510] mark.search-highlight.current-match {
  background-color: var(--surface-warning-soft) !important;
  font-weight: 600 !important;
  border: 2px solid var(--primary-color);
  border-radius: 2px;
  box-shadow: var(--shadow-sm);
}

.chat-window[data-v-dc243bdb] {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100%;
  background: var(--surface-color);
  border-left: 1px solid var(--border-color);
  overflow: hidden;
}
.chat-window-header[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
  flex-shrink: 0;
}
.chat-window-title[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--text-primary);
}
.chat-window-title i[data-v-dc243bdb] {
  color: var(--primary-color);
}
.chat-messages[data-v-dc243bdb] {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  scrollbar-width: thin;
  scrollbar-color: var(--border-color) transparent;
}
.chat-messages[data-v-dc243bdb]::-webkit-scrollbar {
  width: 8px;
}
.chat-messages[data-v-dc243bdb]::-webkit-scrollbar-track {
  background: transparent;
}
.chat-messages[data-v-dc243bdb]::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 4px;
}
.chat-messages[data-v-dc243bdb]::-webkit-scrollbar-thumb:hover {
  background: var(--text-secondary);
}
.chat-welcome[data-v-dc243bdb] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
  text-align: center;
  gap: 1rem;
}
.chat-welcome-icon[data-v-dc243bdb] {
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 100%);
  border-radius: 50%;
  box-shadow: var(--shadow-lg);
}
.chat-welcome-icon .material-symbols-rounded[data-v-dc243bdb] {
  font-size: 48px;
  color: var(--color-white);
}
.chat-welcome-title[data-v-dc243bdb] {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0;
}
.chat-welcome-subtitle[data-v-dc243bdb] {
  font-size: 0.95rem;
  color: var(--text-secondary);
  margin: 0;
  max-width: 500px;
}
.chat-welcome-warning[data-v-dc243bdb] {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--color-danger);
  margin-top: 1.5rem;
  background: var(--surface-danger-soft);
  padding: 8px 16px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--surface-danger-soft);
}
.chat-suggestions[data-v-dc243bdb] {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: 100%;
  max-width: 600px;
  margin-top: 0.5rem;
}
.chat-suggestion-card[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border: 1px solid var(--border-color);
  border-radius: 12px;
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.9rem;
  text-align: left;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: var(--shadow-sm);
}
.chat-suggestion-card[data-v-dc243bdb]:hover {
  border-color: var(--primary-color);
  background: var(--bg-hover);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.chat-suggestion-card i[data-v-dc243bdb] {
  font-size: 1.25rem;
  color: var(--primary-color);
  flex-shrink: 0;
}
.chat-suggestion-card span[data-v-dc243bdb] {
  flex: 1;
  line-height: 1.5;
}
.chat-message[data-v-dc243bdb] {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 2rem;
  width: 100%;
}
.chat-message--user[data-v-dc243bdb] {
  flex-direction: row-reverse;
}
.chat-message-avatar[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--surface-color-secondary);
  color: var(--text-secondary);
  flex-shrink: 0;
  overflow: hidden;
}
.chat-message--user .chat-message-avatar[data-v-dc243bdb] {
  background: var(--surface-muted);
  color: var(--text-primary);
}
.chat-avatar-img[data-v-dc243bdb] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.chat-avatar-initial[data-v-dc243bdb] {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  font-weight: 600;
}
.chat-message-body[data-v-dc243bdb] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
  min-width: 0;
  max-width: 85%;
}
.chat-message--user .chat-message-body[data-v-dc243bdb] {
  align-items: flex-end;
}
.chat-message-content[data-v-dc243bdb] {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}
.chat-message--user .chat-message-content[data-v-dc243bdb] {
  align-items: flex-end;
}
.chat-message--user .chat-message-content[data-v-dc243bdb] {
  flex-direction: row-reverse;
}
.chat-message-text[data-v-dc243bdb] {
  position: relative;
  padding: 0.6rem 1rem;
  border-radius: 8px;
  background: var(--chat-bubble-bg);
  color: var(--text-primary);
  font-size: 0.875rem;
  line-height: 1.4;
  word-wrap: break-word;
  width: fit-content;
  max-width: 100%;
}

/* 말풍선 꼬리 (AI) */
.chat-message-text[data-v-dc243bdb]::before {
  content: '';
  position: absolute;
  top: 10px;
  left: -8px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 8px 6px 0;
  border-color: transparent var(--chat-bubble-bg) transparent transparent;
}
.chat-message--user .chat-message-text[data-v-dc243bdb] {
  background: var(--primary-color);
  color: var(--color-white);
}
.chat-message--assistant[data-v-dc243bdb] {
  margin-bottom: 1rem;
}

/* 말풍선 꼬리 (User) */
.chat-message--user .chat-message-text[data-v-dc243bdb]::before {
  left: auto;
  right: -8px;
  border-width: 6px 0 6px 8px;
  border-color: transparent transparent transparent var(--primary-color);
}

/* 마크다운 스타일 (Bold, List, Header, Table) */
.chat-message-text[data-v-dc243bdb] p { margin-bottom: 0.5rem;
}
.chat-message-text[data-v-dc243bdb] p:last-child { margin-bottom: 0;
}
.chat-message-text[data-v-dc243bdb] strong { font-weight: 800; color: var(--primary-color);
}
.chat-message-text[data-v-dc243bdb] ul, .chat-message-text[data-v-dc243bdb] ol { margin: 0.5rem 0; padding-left: 1.5rem;
}
.chat-message-text[data-v-dc243bdb] li { margin-bottom: 0.25rem; list-style-type: disc;
}
.chat-message-text[data-v-dc243bdb] h1, .chat-message-text[data-v-dc243bdb] h2, .chat-message-text[data-v-dc243bdb] h3 { font-weight: 700; margin: 0.8rem 0 0.4rem 0;
}
.chat-message-text[data-v-dc243bdb] h1 { font-size: 1.3rem;
}
.chat-message-text[data-v-dc243bdb] h2 { font-size: 1.15rem;
}
.chat-message-text[data-v-dc243bdb] h3 { font-size: 1.05rem;
}
.chat-message-text[data-v-dc243bdb] table { width: 100%; border-collapse: collapse; margin: 0.8rem 0; font-size: 0.9rem;
}
.chat-message-text[data-v-dc243bdb] th, .chat-message-text[data-v-dc243bdb] td { border: 1px solid var(--border-color); padding: 0.4rem 0.6rem;
}
.chat-message-text[data-v-dc243bdb] th { background: var(--surface-stripe); font-weight: 600;
}
.chat-message--user .chat-message-text[data-v-dc243bdb] th,
.chat-message--user .chat-message-text[data-v-dc243bdb] td { border-color: rgba(var(--color-white-rgb), 0.3);
}
.chat-message--user .chat-message-text[data-v-dc243bdb] th { background: rgba(var(--color-white-rgb), 0.2);
}
.chat-message-text[data-v-dc243bdb] pre {
  background: var(--surface-stripe);
  padding: 0.5rem;
  border-radius: 4px;
  overflow-x: auto;
  margin: 0.5rem 0;
}
.chat-message--user .chat-message-text[data-v-dc243bdb] pre {
  background: rgba(var(--color-white-rgb), 0.2);
}
.chat-message-text[data-v-dc243bdb] code {
  background: var(--surface-stripe);
  padding: 0.2rem 0.4rem;
  border-radius: 3px;
  font-size: 0.9em;
}
.chat-message--user .chat-message-text[data-v-dc243bdb] code {
  background: rgba(var(--color-white-rgb), 0.2);
}
.chat-message-text[data-v-dc243bdb] .doc-link {
  color: var(--primary-color);
  text-decoration: underline;
  cursor: pointer;
  font-weight: 500;
}
.chat-message-text[data-v-dc243bdb] .doc-link:hover {
  filter: brightness(1.1);
}
.chat-message-text[data-v-dc243bdb] .meta-select-link {
  color: var(--color-info);
  text-decoration: underline;
  cursor: pointer;
  font-weight: 500;
}
.chat-message-text[data-v-dc243bdb] .meta-select-link:hover {
  filter: brightness(1.1);
}
.chat-message-loading[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  color: var(--text-secondary);
  font-style: italic;
}
.chat-error[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background: var(--surface-danger-soft);
  color: var(--color-danger);
  border-radius: 8px;
  font-size: 0.875rem;
}

/* Message Stats */
.message-stats[data-v-dc243bdb] {
    margin-top: 8px;
    font-size: 0.75rem;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: flex-end;
}
.stat-item[data-v-dc243bdb] {
    display: flex;
    align-items: center;
    gap: 4px;
}
.stat-item i[data-v-dc243bdb] {
    font-size: 0.7rem;
}
.stat-divider[data-v-dc243bdb] {
    color: var(--text-tertiary);
}

/* 다크 모드 지원 (필요 시) */
:root.dark .message-stats[data-v-dc243bdb] {
    color: var(--text-tertiary);
}

/* 스트리밍 인디케이터 */
.streaming-indicator[data-v-dc243bdb] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    padding: 8px 12px;
    font-size: 0.8rem;
    color: var(--primary-color);
    background: var(--surface-primary-soft);
    border-radius: 6px;
    animation: fadeIn-dc243bdb 0.3s ease;
}
.streaming-indicator i[data-v-dc243bdb] {
    font-size: 0.6rem;
}
.streaming-indicator span[data-v-dc243bdb] {
    font-weight: 500;
}
.chat-input-container[data-v-dc243bdb] {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0.5rem;
  border-top: 1px solid var(--border-color);
  background: var(--surface-color);
  flex-shrink: 0;
}
.chat-input-wrapper[data-v-dc243bdb] {
  flex: 1;
  min-width: 0;
}

/* 외형(테두리·패딩·포커스·disabled)은 공통 AppTextarea 가 담당.
   여기선 채팅 전용 치수와, 아래 툴바와 한 덩어리로 보이게 위쪽만 둥근 모서리만 둔다. */
.chat-input[data-v-dc243bdb] {
  min-height: 80px;
  max-height: 200px;
  border-radius: 8px 8px 0 0;
}
.chat-toolbar[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--border-color);
  border-radius: 0 0 8px 8px;
  background: var(--surface-color);
  gap: 0.5rem;
}
.chat-toolbar-left[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1;
}
.context-usage[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.context-chart-wrapper[data-v-dc243bdb] {
  position: relative;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.context-donut[data-v-dc243bdb] {
  width: 32px;
  height: 32px;
  transform: rotate(-90deg);
}
.context-donut-ring[data-v-dc243bdb] {
  opacity: 0.2;
}
.context-donut-segment[data-v-dc243bdb] {
  transition: stroke-dasharray 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.context-donut-segment--warning[data-v-dc243bdb] {
  stroke: var(--color-warning) !important;
}
.context-donut-segment--danger[data-v-dc243bdb] {
  stroke: var(--color-danger) !important;
}
.context-percent-text[data-v-dc243bdb] {
  position: absolute;
  font-size: 0.55rem;
  font-weight: 700;
  color: var(--text-primary);
  text-align: center;
  line-height: 1;
}
.context-compress-button[data-v-dc243bdb] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--surface-color);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: var(--shadow-sm);
}
.context-compress-button[data-v-dc243bdb]:hover:not(:disabled) {
  background: var(--bg-hover);
  border-color: var(--primary-color);
  color: var(--primary-color);
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}
.context-compress-button[data-v-dc243bdb]:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: none;
}
.context-compress-button i[data-v-dc243bdb] {
  font-size: 0.75rem;
}
.chat-toolbar-right[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* 반응형: 좁은 화면에서 버튼 텍스트 숨기기 */
@media (max-width: 600px) {
.chat-toolbar-button-text[data-v-dc243bdb] {
    display: none;
}
}

/* diff 블록 스타일 */
.chat-message-text[data-v-dc243bdb] .diff-block {
  margin: 0.75rem 0;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  overflow: hidden;
  background: var(--surface-color);
}
.chat-message-text[data-v-dc243bdb] .diff-block-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.75rem;
  background: var(--surface-color-secondary);
  border-bottom: 1px solid var(--border-color);
  gap: 0.5rem;
}
.chat-message-text[data-v-dc243bdb] .diff-block-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--text-primary);
}
.chat-message-text[data-v-dc243bdb] .diff-block-title i {
  color: var(--primary-color);
}
.chat-message-text[data-v-dc243bdb] .diff-apply-button {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.75rem;
  border-radius: 4px;
  border: 1px solid var(--primary-color);
  background: var(--primary-color);
  color: var(--color-white);
  font-size: 0.8125rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.chat-message-text[data-v-dc243bdb] .diff-apply-button:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
}
.chat-message-text[data-v-dc243bdb] .diff-apply-button:active {
  transform: translateY(0);
}
.chat-message-text[data-v-dc243bdb] .diff-apply-button--disabled,
.chat-message-text[data-v-dc243bdb] .diff-apply-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
.chat-message-text[data-v-dc243bdb] .diff-apply-button--disabled:hover,
.chat-message-text[data-v-dc243bdb] .diff-apply-button:disabled:hover {
  filter: none;
  transform: none;
}
.chat-message-text[data-v-dc243bdb] .diff-block-content {
  font-family: 'Courier New', monospace;
  font-size: 0.8125rem;
  line-height: 1.5;
  overflow-x: auto;
  max-height: 400px;
  overflow-y: auto;
}
.chat-message-text[data-v-dc243bdb] .diff-block-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.75rem;
  background: var(--surface-color-secondary);
  border-top: 1px solid var(--border-color);
  gap: 0.5rem;
}
.chat-message-text[data-v-dc243bdb] .diff-applied-message {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  color: var(--success-color);
  font-weight: 500;
}
.chat-message-text[data-v-dc243bdb] .diff-applied-message i {
  color: var(--success-color);
}
.chat-message-text[data-v-dc243bdb] .diff-revert-button {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.75rem;
  border-radius: 4px;
  border: 1px solid var(--color-warning);
  background: var(--surface-color);
  color: var(--color-warning);
  font-size: 0.8125rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}
.chat-message-text[data-v-dc243bdb] .diff-revert-button:hover {
  background: var(--color-warning);
  color: var(--color-white);
  transform: translateY(-1px);
}
.chat-message-text[data-v-dc243bdb] .diff-revert-button:active {
  transform: translateY(0);
}
.chat-message-text[data-v-dc243bdb] .diff-revert-button--disabled,
.chat-message-text[data-v-dc243bdb] .diff-revert-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
.chat-message-text[data-v-dc243bdb] .diff-revert-button--disabled:hover,
.chat-message-text[data-v-dc243bdb] .diff-revert-button:disabled:hover {
  background: var(--surface-color);
  color: var(--color-warning);
  transform: none;
}
.chat-message-text[data-v-dc243bdb] .diff-line-header {
  padding: 0.25rem 0.5rem;
  background: var(--surface-stripe);
  color: var(--text-secondary);
  font-weight: 600;
}
.chat-message-text[data-v-dc243bdb] .diff-line-hunk {
  padding: 0.25rem 0.5rem;
  background: var(--surface-info-soft);
  color: var(--color-info);
  font-weight: 600;
}
.chat-message-text[data-v-dc243bdb] .diff-line-add {
  padding: 0.25rem 0.5rem;
  background: var(--surface-success-soft);
  color: var(--color-success);
}
.chat-message-text[data-v-dc243bdb] .diff-line-remove {
  padding: 0.25rem 0.5rem;
  background: var(--surface-danger-soft);
  color: var(--color-danger);
}
.chat-message-text[data-v-dc243bdb] .diff-line-context {
  padding: 0.25rem 0.5rem;
  color: var(--text-primary);
}
.chat-message-text[data-v-dc243bdb] p {
  margin: 0;
}
.chat-message-text[data-v-dc243bdb] p + p {
  margin-top: 0.5em;
}

/* 다크 테마 */
html[data-theme='dark'] .chat-message--user .chat-message-text[data-v-dc243bdb] pre {
  background: var(--surface-active);
}

/* 메시지 재사용 버튼 스타일 */
.chat-message-retry-btn[data-v-dc243bdb] {
  opacity: 0;
  transition: opacity 0.2s;
  background: transparent;
  border: none;
  color: var(--text-secondary);
  cursor: pointer;
  padding: 0.4rem; /* 클릭 영역 확보 */
  font-size: 0.9rem; /* 아이콘 크기 약간 키움 */
  border-radius: 50%; /* 원형 버튼 */
}
.chat-message-retry-btn[data-v-dc243bdb]:hover {
  color: var(--primary-color);
  background: var(--surface-hover);
}



/* 터치 디바이스나 호버 시 표시 */
.chat-message:hover .chat-message-retry-btn[data-v-dc243bdb] {
  opacity: 1;
}
@media (max-width: 768px) {
.chat-input[data-v-dc243bdb] {
    font-size: 16px !important;
}
}

/* Malpoongsun Action Card */
.chat-action-card[data-v-dc243bdb] {
  margin-top: 12px;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  animation: fadeIn-dc243bdb 0.3s ease;
}
.chat-action-header[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9em;
  font-weight: 600;
  color: var(--text-primary);
}
.chat-action-header i[data-v-dc243bdb] {
  color: var(--color-warning);
}
.chat-action-buttons[data-v-dc243bdb] {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}
.chat-action-btn[data-v-dc243bdb] {
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 0.85em;
  cursor: pointer;
  border: none;
  font-weight: 600;
}
.chat-action-btn--cancel[data-v-dc243bdb] {
  background: var(--surface-hover);
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
}
.chat-action-btn--ok[data-v-dc243bdb] {
  background: var(--primary-color);
  color: var(--color-white);
  display: flex;
  align-items: center;
  gap: 4px;
}
@keyframes fadeIn-dc243bdb {
from { opacity: 0; transform: translateY(5px);
}
to { opacity: 1; transform: translateY(0);
}
}

/* Process Logs (Cursor Style) */
.process-logs-container[data-v-dc243bdb] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
  padding: 4px 0;
}
.process-log-item[data-v-dc243bdb] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 6px;
  overflow: hidden;
  font-size: 0.85rem;
  transition: all 0.2s ease;
}
.process-log-item.running[data-v-dc243bdb] {
  border-color: var(--primary-color);
  box-shadow: 0 0 0 1px var(--surface-primary-soft);
}
.process-log-item.done[data-v-dc243bdb] {
  border-color: var(--border-color);
}
.log-header[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  padding: 8px 12px;
}
.log-header i[data-v-dc243bdb] {
  font-size: 0.9em;
  width: 16px;
  text-align: center;
}
.process-log-item.running .log-header i[data-v-dc243bdb] {
  color: var(--primary-color);
}
.process-log-item.done .log-header i[data-v-dc243bdb] {
  color: var(--success-color);
}
.process-log-item.error .log-header i[data-v-dc243bdb] {
  color: var(--color-warning);
}
.log-name[data-v-dc243bdb] {
  font-weight: 500;
  color: var(--text-primary);
  font-family: monospace;
}
.log-status-text[data-v-dc243bdb] {
  font-size: 0.8em;
  color: var(--text-tertiary);
}
.log-spacer[data-v-dc243bdb] {
  flex: 1;
}
.log-actions[data-v-dc243bdb] {
  display: flex;
  align-items: center;
  gap: 4px;
}
.log-copy-btn[data-v-dc243bdb] {
  background: transparent;
  border: none;
  color: var(--text-tertiary);
  cursor: pointer;
  padding: 4px 6px;
  border-radius: 4px;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.log-copy-btn[data-v-dc243bdb]:hover {
  color: var(--primary-color);
  background: var(--surface-hover);
}
.log-details[data-v-dc243bdb] {
  padding: 8px 12px;
  background: var(--surface-color);
  border-top: 1px solid var(--border-color);
  font-family: 'D2Coding', monospace;
  font-size: 0.8em;
  color: var(--text-secondary);
  white-space: pre-wrap;
  word-break: break-all;
  max-height: 200px;
  overflow-y: auto;
}

.todo-work-type-general[data-v-21de0b90] {
  padding: 1.5rem;
}
.todo-work-type__header[data-v-21de0b90] {
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border-color);
}
.todo-work-type__title[data-v-21de0b90] {
  margin: 0 0 0.5rem 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.todo-work-type__title i[data-v-21de0b90] {
  color: var(--primary-color);
}
.todo-work-type__description[data-v-21de0b90] {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-secondary);
}
.todo-work-type__body[data-v-21de0b90] {
  color: var(--text-primary);
}
.todo-work-form[data-v-21de0b90] {
  padding: 1rem;
  background: var(--surface-color-secondary);
  border-radius: 8px;
  border: 1px solid var(--border-color);
}

.help-tab[data-v-4bf4a927] {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}
.help-tab__body[data-v-4bf4a927] {
  flex: 1;
  overflow-y: auto;
  padding: 12px 14px 24px;
}

/* 목차 */
.help-tab__toc[data-v-4bf4a927] {
  margin-bottom: 16px;
  padding: 10px 12px;
  background: var(--surface-muted);
  border-radius: 6px;
  border: 1px solid var(--border-color);
}
.help-tab__toc-title[data-v-4bf4a927] {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
}
.help-tab__toc-title i[data-v-4bf4a927] {
  font-size: 12px;
  color: var(--text-tertiary);
}
.help-tab__toc-list[data-v-4bf4a927] {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
}
.help-tab__toc-list li[data-v-4bf4a927] {
  font-size: 12px;
}
.help-tab__toc-link[data-v-4bf4a927] {
  color: var(--primary-color);
  cursor: pointer;
  text-decoration: none;
}
.help-tab__toc-link[data-v-4bf4a927]:hover {
  text-decoration: underline;
}

/* 섹션 */
.help-tab__section[data-v-4bf4a927] {
  margin-bottom: 18px;
  padding-top: 4px;
}
.help-tab__section-title[data-v-4bf4a927] {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border-color);
}
.help-tab__section-title i[data-v-4bf4a927] {
  font-size: 13px;
  color: var(--primary-color);
}
.help-tab__text[data-v-4bf4a927] {
  margin: 0 0 8px;
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--text-secondary);
}
.help-tab__list[data-v-4bf4a927] {
  margin: 4px 0 8px;
  padding-left: 18px;
  font-size: 12.5px;
  line-height: 1.8;
  color: var(--text-secondary);
}
.help-tab__list li[data-v-4bf4a927] {
  margin-bottom: 2px;
}

/* 카드 */
.help-tab__card[data-v-4bf4a927] {
  margin: 8px 0;
  padding: 8px 10px;
  background: var(--surface-muted);
  border-radius: 5px;
  border-left: 3px solid var(--primary-color);
}
.help-tab__card-title[data-v-4bf4a927] {
  margin: 0 0 4px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 5px;
}
.help-tab__card-title i[data-v-4bf4a927] {
  font-size: 11px;
  color: var(--primary-color);
}

/* 테이블 */
.help-tab__table[data-v-4bf4a927] {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  margin: 8px 0;
}
.help-tab__table th[data-v-4bf4a927],
.help-tab__table td[data-v-4bf4a927] {
  padding: 5px 8px;
  border: 1px solid var(--border-color);
  text-align: left;
}
.help-tab__table th[data-v-4bf4a927] {
  background: var(--surface-muted);
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
}
.help-tab__table td[data-v-4bf4a927] {
  color: var(--text-secondary);
}
.help-tab__table kbd[data-v-4bf4a927] {
  display: inline-block;
  padding: 1px 5px;
  font-size: 11px;
  font-family: inherit;
  color: var(--text-primary);
  background: var(--surface-muted);
  border: 1px solid var(--border-color);
  border-radius: 3px;
  box-shadow: 0 1px 0 var(--border-color);
}

/* 맨 위로 */
.help-tab__back-top[data-v-4bf4a927] {
  text-align: center;
  padding: 8px 0 4px;
}
.help-tab__back-top a[data-v-4bf4a927] {
  font-size: 12px;
  color: var(--text-tertiary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.help-tab__back-top a[data-v-4bf4a927]:hover {
  color: var(--primary-color);
}

/* deep styles for v-html bold */
.help-tab__text[data-v-4bf4a927] strong,
.help-tab__list[data-v-4bf4a927] strong {
  font-weight: 600;
  color: var(--text-primary);
}
.help-tab__text[data-v-4bf4a927] code,
.help-tab__list[data-v-4bf4a927] code {
  padding: 1px 4px;
  font-size: 11.5px;
  font-family: 'Courier New', monospace;
  background: var(--surface-muted);
  border: 1px solid var(--border-color);
  border-radius: 3px;
  color: var(--text-primary);
}

.todo-work-type-crawling[data-v-06e98942] {
  padding: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
}
.scraper-editor-container[data-v-06e98942] {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
}
.todo-work-form[data-v-06e98942] {
  padding: 1rem;
  background: var(--surface-color-secondary);
  border-radius: 8px;
  border: 1px solid var(--border-color);
}
.todo-work-form--loading[data-v-06e98942],
.todo-work-form--error[data-v-06e98942],
.todo-work-form--no-company[data-v-06e98942] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  flex: 1 1 0;
  min-height: 0;
  gap: 1rem;
}
.todo-work-form--error[data-v-06e98942] {
  border-radius: 0;
}
.loading-container[data-v-06e98942] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  color: var(--text-secondary);
}
.loading-container i[data-v-06e98942] {
  font-size: 2rem;
  color: var(--primary-color);
}
.error-message[data-v-06e98942] {
  color: var(--color-danger);
  font-size: 0.875rem;
  margin: 0;
}
.action-button[data-v-06e98942] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border-radius: 6px;
  border: 1px solid transparent;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}
.action-button--primary[data-v-06e98942] {
  background: var(--primary-color);
  color: var(--color-white);
  border-color: var(--primary-color);
}
.action-button--primary[data-v-06e98942]:hover:not(:disabled) {
  filter: brightness(1.1);
}
.action-button--primary[data-v-06e98942]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.action-button--secondary[data-v-06e98942] {
  background: var(--surface-color);
  color: var(--text-primary);
  border-color: var(--border-color);
}
.action-button--secondary[data-v-06e98942]:hover:not(:disabled) {
  background: var(--surface-color-secondary);
  border-color: var(--primary-color);
}
.action-button--secondary[data-v-06e98942]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.scraper-editor-header[data-v-06e98942] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border-color);
  flex-wrap: wrap;
  gap: 1rem;
}
.scraper-editor-info[data-v-06e98942] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-primary);
}
.company-code-label[data-v-06e98942] {
  font-size: 0.875rem;
  color: var(--text-secondary);
  font-weight: 500;
}
.company-code-value[data-v-06e98942] {
  font-size: 0.875rem;
  color: var(--primary-color);
  font-weight: 600;
  font-family: 'Courier New', monospace;
  background: var(--surface-color);
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  border: 1px solid var(--border-color);
}
.scraper-editor-actions[data-v-06e98942] {
  display: flex;
  gap: 0.5rem;
}
.tabs-container[data-v-06e98942] {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
}
.tabs-header[data-v-06e98942] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 0;
  background: var(--surface-color);
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
  overflow: visible;
  padding-right: 12px;
  padding-bottom: 0.5rem; /* 2줄일 때 하단 여백 추가 */
}
.tabs-header-left[data-v-06e98942] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 1;
  min-width: 0;
  flex-wrap: wrap; /* 너비가 부족하면 2줄로 표시 */
  overflow-x: visible; /* 스크롤 대신 줄바꿈 사용 */
}
.tabs-header-right[data-v-06e98942] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  padding-left: 12px;
}
.tab-btn[data-v-06e98942] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: 0.375rem;
  padding: 0.75rem 1.25rem;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text-secondary);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
  position: relative;
}
.tab-btn[data-v-06e98942]:hover {
  color: var(--text-primary);
  background: var(--bg-hover);
}
.tab-btn.active[data-v-06e98942] {
  color: var(--primary-color);
  border-bottom-color: var(--primary-color);
  background: transparent;
}
.tab-count[data-v-06e98942] {
  display: inline-block;
  font-size: 0.75rem;
  opacity: 0.8;
}
.tab-progress[data-v-06e98942] {
  font-size: 0.75rem;
  margin-left: 0.25rem;
  font-weight: 600;
  opacity: 0.9;
}

/* 모바일 스타일 */
@media (max-width: 768px) {
.tabs-header-left[data-v-06e98942] {
    gap: 0.5rem; /* 모바일에서 간격 줄이기 */
}
.tab-btn[data-v-06e98942] {
    padding: 0.75rem 1rem; /* 모바일에서 패딩 줄이기 */
    font-size: 0.8125rem; /* 폰트 크기 약간 줄이기 */
}
.tabs-header-right[data-v-06e98942] {
    padding-left: 8px; /* 모바일에서 패딩 줄이기 */
}
}
.tabs-content[data-v-06e98942] {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  position: relative;
}
.tab-panel[data-v-06e98942] {
  display: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.tab-panel.active[data-v-06e98942] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.tab-placeholder[data-v-06e98942] {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: var(--text-secondary);
  font-size: 14px;
}
.tab-panel-data-wrapper[data-v-06e98942] {
  width: 100%;
  height: 100%;
  padding: 1rem;
  box-sizing: border-box;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.data-tab-header[data-v-06e98942] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
  flex-shrink: 0;
}
.data-tab-header-message[data-v-06e98942] {
  color: var(--text-secondary);
  font-size: 0.875rem;
}
.data-tab-footer[data-v-06e98942] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1rem;
  flex-shrink: 0;
}
.data-tab-footer-message[data-v-06e98942] {
  color: var(--text-secondary);
  font-size: 0.875rem;
}
.delete-test-data-button[data-v-06e98942] {
  white-space: nowrap;
  flex-shrink: 0;
}
.vertical-split-container[data-v-06e98942] {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: row;
  overflow: hidden;
  position: relative;
}
.vertical-split-container.swapped[data-v-06e98942] {
  flex-direction: row-reverse;
}

/* ═══ 데스크톱 좌측 패널 (데이터/AI/배포/도움말) ═══ */
.crawling-left-pane[data-v-06e98942] {
  flex-shrink: 0;
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.crawling-left-tabs__content[data-v-06e98942] {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* ═══ 데스크톱 우측 패널 (코드편집기) ═══ */
.crawling-right-pane[data-v-06e98942] {
  flex-shrink: 0;
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.crawling-right-pane__title[data-v-06e98942] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.375rem 0.75rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  min-height: 32px;
}
.crawling-right-pane__title-left[data-v-06e98942] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-secondary);
}
.crawling-right-pane__title-left i[data-v-06e98942] {
  font-size: 0.6875rem;
  color: var(--text-tertiary);
}
.crawling-right-pane__title-users[data-v-06e98942] {
  display: flex;
  align-items: center;
}

/* 분리대 라벨 (compact 모드) */
.vertical-split-resizer-label[data-v-06e98942] {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-90deg);
  white-space: nowrap;
  font-size: 0.6875rem;
  font-weight: 500;
  color: var(--text-secondary);
  pointer-events: none;
  letter-spacing: 0.5px;
}
.resizer-icon-vertical[data-v-06e98942] {
  transform: rotate(90deg);
}

/* 드래그 중 iframe/PDF 가 마우스 이벤트 가로채지 못하게 깔리는 overlay.
   z-index 규칙은 tokens.css 의 --z-resize-overlay 주석 참고. */
.resize-overlay[data-v-06e98942] {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-resize-overlay);
  cursor: col-resize;
}
.split-container {
&[data-v-06e98942] {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: visible;
  }
&.swapped[data-v-06e98942] {
    flex-direction: column-reverse;
}
}
.source-editor-pane[data-v-06e98942] {
  flex-shrink: 0;
  overflow: hidden;
  min-height: 100px;
  position: relative;
}
.scraper-editor-wrapper[data-v-06e98942] {
  width: 100%;
  height: 100%;
  flex: 1;
  min-height: 0;
}
.split-resizer[data-v-06e98942] {
  flex-shrink: 0;
  height: 8px;
  background: var(--border-color);
  cursor: row-resize;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s, opacity 0.2s, height 0.2s;
  z-index: 10;
  overflow: visible;
}
.split-resizer.compact[data-v-06e98942] {
  opacity: 1;
  cursor: pointer;
  height: 32px;
  background: var(--surface-color-secondary);
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
}
html[data-theme='light'] .split-resizer.compact[data-v-06e98942],
body[data-theme='light'] .split-resizer.compact[data-v-06e98942] {
  background: var(--surface-color-secondary);
}
html[data-theme='dark'] .split-resizer.compact[data-v-06e98942],
body[data-theme='dark'] .split-resizer.compact[data-v-06e98942] {
  background: var(--border-color);
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
}
.split-resizer-message[data-v-06e98942] {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  color: var(--text-primary);
  font-size: 0.875rem;
  font-weight: 500;
  white-space: nowrap;
  pointer-events: none;
  z-index: 5;
  margin-left: 3rem; /* 버튼 영역을 피하기 위해 오른쪽으로 이동 */
}
.split-resizer[data-v-06e98942]:hover:not(.compact) {
  background: var(--primary-color);
}
.split-resizer.compact[data-v-06e98942]:hover {
  opacity: 1;
  background: var(--bg-hover, var(--surface-muted));
  border-top-color: var(--primary-color);
  border-bottom-color: var(--primary-color);
}
html[data-theme='dark'] .split-resizer.compact[data-v-06e98942]:hover,
body[data-theme='dark'] .split-resizer.compact[data-v-06e98942]:hover {
  background: var(--surface-hover);
  border-top-color: var(--primary-color);
  border-bottom-color: var(--primary-color);
}
.split-resizer.resizing[data-v-06e98942] {
  background: var(--primary-color);
}
.split-resizer-handle[data-v-06e98942] {
  width: 40px;
  height: 3px;
  background: var(--text-secondary);
  border-radius: 2px;
  opacity: 0.6;
  transition: opacity 0.2s;
}
.split-resizer:hover .split-resizer-handle[data-v-06e98942],
.split-resizer.resizing .split-resizer-handle[data-v-06e98942] {
  opacity: 1;
}
.split-resizer-controls[data-v-06e98942] {
  position: absolute;
  left: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  gap: 0.25rem;
  z-index: 100;
  pointer-events: auto;
  overflow: visible;
}
.resizer-toggle-btn[data-v-06e98942] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  padding: 0;
  margin: 0;
  border: 1px solid var(--border-color);
  border-radius: 3px;
  background: var(--surface-color);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.15s;
  font-size: 0.55rem;
  line-height: 1;
  box-sizing: border-box;
}
.resizer-toggle-btn[data-v-06e98942]:hover {
  background: var(--primary-color);
  color: var(--color-white);
  border-color: var(--primary-color);
}
.resizer-toggle-btn i[data-v-06e98942] {
  font-size: 0.5rem;
  line-height: 1;
}
.split-resizer-controls-standalone[data-v-06e98942] {
  position: absolute;
  left: 0.5rem;
  top: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  z-index: 100;
  pointer-events: auto;
}
.test-pane[data-v-06e98942] {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--surface-color-secondary);
  position: relative;
  /* container query — 우측 패널 폭에 따라 헤더 컨트롤 압축 (#441 반응형) */
  container-type: inline-size;
  container-name: test-pane;
}

/* 패널이 좁아지면 (#441 반응형):
   1) 헤더를 column 으로 — status 위, controls 아래
   2) controls 가 부모 폭에 맞춰 width:100% — 내부 flex-wrap 이 비로소 동작
   3) 테스트 버튼은 텍스트 숨기고 32×32 아이콘 정사각으로 압축 */
@container test-pane (max-width: 600px) {
.test-pane-header[data-v-06e98942] {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
}
.test-status-info[data-v-06e98942] {
    width: 100%;
}
.test-controls[data-v-06e98942] {
    width: 100%;
    margin-left: 0;
    row-gap: 0.5rem;
}
}
@container test-pane (max-width: 480px) {
.test-button span[data-v-06e98942] {
    display: none;
}
.test-button[data-v-06e98942] {
    padding: 0;
    width: 32px;
    gap: 0;
}
}

/* 라이트 테마에서 테스트 영역 배경을 흰색으로 */
html[data-theme='light'] .test-pane[data-v-06e98942],
body[data-theme='light'] .test-pane[data-v-06e98942] {
  background: var(--color-white);
}
.test-pane-header[data-v-06e98942] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
  gap: 1rem;
  position: relative;
}

/* 스크롤바가 스크래퍼 선택 컨트롤 전까지 확장되도록 */
.test-pane-header[data-v-06e98942]::after {
  content: '';
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: var(--surface-color);
  z-index: 2;
  pointer-events: none;
  /* test-controls 시작 위치까지만 확장 (대략 200px 정도) */
  margin-right: calc(150px + 0.75rem + 80px); /* MultiSelect width + gap + button approximate width */
}

/* 스크롤바가 스크래퍼 선택 컨트롤 전까지 확장되도록 */
.test-pane-header[data-v-06e98942]::after {
  content: '';
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: var(--surface-color);
  z-index: 2;
  pointer-events: none;
  /* test-controls 시작 위치까지만 확장 (대략 200px 정도) */
  margin-right: calc(150px + 0.75rem + 80px); /* MultiSelect width + gap + button approximate width */
}
.test-button[data-v-06e98942] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  padding: 0 0.75rem;
  height: 32px;
  border-radius: 6px;
  border: 1px solid var(--primary-color);
  background: var(--primary-color);
  color: var(--color-white);
  font-size: 0.8125rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
  box-sizing: border-box;
}
.test-button[data-v-06e98942]:hover:not(:disabled) {
  filter: brightness(1.1);
}
.test-button[data-v-06e98942]:active:not(:disabled) {
  transform: scale(0.98);
}
.test-button[data-v-06e98942]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.test-button--stop[data-v-06e98942] {
  border-color: var(--color-danger);
  background: var(--color-danger);
}
.test-button--stop[data-v-06e98942]:hover:not(:disabled) {
  filter: brightness(1.1);
  background: var(--color-danger-hover);
}
.test-button i[data-v-06e98942] {
  font-size: 0.6875rem;
}
.test-status-info[data-v-06e98942] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 1;
  min-width: 0;
}
.test-controls[data-v-06e98942] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
  position: relative;
  z-index: 30;
  background: var(--surface-color);
   /* 상단 헤더의 오른쪽에 붙도록 */
  margin-left: auto;
  /* 가로 공간이 부족할 때 여러 줄로 내려가도 오른쪽 정렬 유지 */
  flex-wrap: wrap;
  justify-content: flex-end;
}
.log-level-select-wrapper[data-v-06e98942] {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.log-level-sort-control[data-v-06e98942] {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
.log-level-dropdown[data-v-06e98942] {
  min-width: 140px;
}

/* 로그 레벨 콤보 내부 버튼/드롭다운 스타일 (ListView와 동일한 비주얼) */
.log-level-sort-control[data-v-06e98942] .list-view__sort-select {
  padding: 6px 10px;
  border-radius: 4px;
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.75rem;
  height: 32px;
  /* 좁은 가로 공간에서 라벨이 한 글자씩 wrap 되어 세로처럼 보이는 회귀 방지 */
  min-width: 90px;
  white-space: nowrap;
  flex-shrink: 0;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
}
.log-level-sort-control[data-v-06e98942] .list-view__sort-select:disabled {
  opacity: 1 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  background: var(--surface-color) !important;
  color: var(--text-secondary) !important;
  border-color: var(--border-color) !important;
}
.log-level-sort-control[data-v-06e98942] .list-view__sort-select:hover:not(:disabled) {
  border-color: var(--primary-color);
  background: var(--bg-hover);
}
.log-level-sort-control[data-v-06e98942] .list-view__sort-select:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background: var(--surface-muted);
}
.log-level-sort-control[data-v-06e98942] .list-view__sort-select-label {
  white-space: nowrap;
}
.log-level-sort-control[data-v-06e98942] .list-view__sort-select-caret {
  display: inline-flex;
  align-items: center;
}
.log-level-sort-control[data-v-06e98942] .list-view__sort-select-caret i {
  font-size: 0.75rem;
}
.log-level-sort-control[data-v-06e98942] .list-view__sort-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 2px;
  min-width: 100%;
  max-height: 240px;
  overflow-y: auto;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 4px;
  z-index: 40;
  box-shadow: var(--shadow-modal);
  list-style: none;
  padding: 4px 0;
}
.log-level-sort-control[data-v-06e98942] .list-view__sort-option {
  padding: 6px 10px;
  font-size: 0.75rem;
  cursor: pointer;
  white-space: nowrap;
}
.log-level-sort-control[data-v-06e98942] .list-view__sort-option:hover {
  background: var(--bg-hover);
}
.log-level-sort-control[data-v-06e98942] .list-view__sort-option--active {
  background: var(--primary-color);
  color: var(--color-white);
}
.log-level-sort-control[data-v-06e98942] .list-view__sort-option--active:hover {
  background: var(--primary-color);
  color: var(--color-white);
  filter: brightness(1.1);
}
.clear-data-checkbox-label[data-v-06e98942] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  user-select: none;
  font-size: 0.8125rem;
  color: var(--text-primary);
  /* 좁은 가로 공간에서 라벨 한 글자씩 wrap 되어 세로처럼 깨지는 회귀 방지.
     라벨이 길어 다 못 들어가면 ellipsis 로 잘리고, 충분한 공간이면 그대로 표시. */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-shrink: 1;
  min-width: 0;
}
.clear-data-checkbox-label.disabled[data-v-06e98942] {
  opacity: 0.6;
  cursor: not-allowed;
}
.clear-data-checkbox[data-v-06e98942] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: var(--primary-color);
}
.clear-data-checkbox[data-v-06e98942]:disabled {
  cursor: not-allowed;
}
.clear-data-checkbox-text[data-v-06e98942] {
  white-space: nowrap;
}
.test-controls[data-v-06e98942] .multi-select-wrapper {
  width: 150px;
  flex-shrink: 0;
}
.test-controls[data-v-06e98942] .multi-select-control {
  height: auto;
  min-height: 32px;
}
.test-controls[data-v-06e98942] .multi-select-control:hover {
  border-color: var(--primary-color);
}
.test-controls[data-v-06e98942] .multi-select-control:focus-within,
.test-controls[data-v-06e98942] .multi-select-control.open {
  border-color: var(--primary-color);
  outline: none;
}
.scraper-select-disabled[data-v-06e98942] .multi-select-control {
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
}
.scraper-select-disabled[data-v-06e98942] .multi-select-control:hover,
.scraper-select-disabled[data-v-06e98942] .multi-select-control:focus-within {
  border-color: var(--border-color);
  box-shadow: none;
}

/* 스크래퍼/로그 레벨 드롭다운이 로그 뷰어 툴바 위로 올라오도록 z-index 보정 */
[data-v-06e98942] .multi-select-dropdown {
  z-index: 40;
}
.test-progress-bar-container[data-v-06e98942] {
  flex-shrink: 0;
  width: 100%;
  height: 4px;
  background: var(--surface-color-secondary);
  overflow: hidden;
  position: relative;
}
.test-progress-bar[data-v-06e98942] {
  height: 100%;
  background: var(--primary-color);
  transition: width 0.3s ease;
  border-radius: 0;
}
.test-status-message[data-v-06e98942] {
  font-size: 0.8125rem;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}
.test-status-message.error[data-v-06e98942] {
  color: var(--color-danger);
}
.test-pane-content[data-v-06e98942] {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.active-users-avatars[data-v-06e98942] {
  display: flex;
  align-items: center;
  gap: -8px;
  height: 32px;
  padding: 4px 0;
}
.active-user-avatar[data-v-06e98942] {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid transparent; /* 실제 색상은 inline style에서 userColor로 설정 */
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  position: relative;
  flex-shrink: 0;
  user-select: none;
  overflow: hidden;
  background-color: var(--surface-color-secondary, var(--bg-secondary));
  z-index: 10;
}
.active-user-avatar-img[data-v-06e98942] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.active-user-avatar-initial[data-v-06e98942] {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--color-white);
  font-size: 0.75rem;
  font-weight: 600;
}
.active-user-avatar[data-v-06e98942]:hover {
  transform: scale(1.1);
  z-index: 11;
}
.active-user-avatar--current[data-v-06e98942] {
  z-index: 12;
  border-color: var(--primary-color) !important;
  border-width: 3px !important;
}
.tab-save-button[data-v-06e98942] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 500;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: var(--primary-color);
  color: var(--color-white);
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  margin-left: 8px;
}
.tab-save-button[data-v-06e98942]:hover:not(:disabled) {
  filter: brightness(1.1);
}
.tab-save-button[data-v-06e98942]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* 반응형 브레이크포인트: 768px */
/* 모바일 에디터 높이 상수: 500px */
@media (max-width: 768px) {
.scraper-editor-header[data-v-06e98942] {
    flex-direction: column;
    align-items: flex-start;
}
.scraper-editor-actions[data-v-06e98942] {
    width: 100%;
    justify-content: flex-end;
}
.scraper-editor-wrapper[data-v-06e98942] {
    /* 모바일 에디터 높이: 500px */
    height: 500px;
}
.test-pane-header[data-v-06e98942] {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
}
.test-status-info[data-v-06e98942] {
    width: 100%;
}
.test-status-message[data-v-06e98942] {
    white-space: normal;
}
.test-controls[data-v-06e98942] {
    width: 100%;
    flex-wrap: wrap;
    justify-content: flex-end;
    row-gap: 0.5rem;
}
.test-controls[data-v-06e98942] > * {
    flex: 0 0 auto;
}
.test-controls[data-v-06e98942] .multi-select-wrapper {
    width: 180px;
}
.log-level-sort-control[data-v-06e98942] .list-view__sort-select {
    width: 150px;
}
}

/* 배포 탭 스타일 */
.deploy-container[data-v-06e98942] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  height: 100%;
  overflow: hidden;
  padding: 1rem;
  box-sizing: border-box;
}
.deploy-buttons[data-v-06e98942] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
}
.deploy-server-count[data-v-06e98942] {
  color: var(--text-secondary);
  font-size: 0.875rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.deploy-buttons-right[data-v-06e98942] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.deploy-button[data-v-06e98942] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: var(--surface-color);
  color: var(--text-primary);
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.deploy-button[data-v-06e98942] {
  background: var(--primary-color);
  color: var(--color-white);
  border-color: var(--primary-color);
}
.deploy-button[data-v-06e98942]:hover:not(:disabled) {
  filter: brightness(1.1);
}
.deploy-button[data-v-06e98942]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.deploy-button--cancel[data-v-06e98942] {
  background: var(--color-danger);
  border-color: var(--color-danger);
}
.deploy-button--cancel[data-v-06e98942]:hover:not(:disabled) {
  background: var(--color-danger-hover);
  border-color: var(--color-danger-hover);
}
.deploy-button-count[data-v-06e98942] {
  font-weight: 600;
}
.deploy-table-wrapper[data-v-06e98942] {
  flex: 1;
  min-height: 0;
  overflow: auto;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  background: var(--surface-color);
}
.deploy-table[data-v-06e98942] {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.deploy-table thead[data-v-06e98942] {
  position: sticky;
  top: 0;
  background: var(--surface-color);
  z-index: 10;
  border-bottom: 2px solid var(--border-color);
}
.deploy-table th[data-v-06e98942] {
  padding: 0.75rem;
  text-align: left;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  position: relative;
}
.deploy-table td[data-v-06e98942] {
  padding: 0.75rem;
  border-bottom: 1px solid var(--border-color);
  color: var(--text-primary);
}
.deploy-table__row[data-v-06e98942] {
  transition: background-color 0.2s ease;
}
.deploy-table__row[data-v-06e98942]:hover {
  background: var(--bg-hover);
}
.deploy-table__row--selected[data-v-06e98942] {
  background: var(--surface-primary-soft);
}
.deploy-table__row--deploying[data-v-06e98942] {
  background: var(--surface-primary-soft);
  animation: pulse-06e98942 2s ease-in-out infinite;
}
.deploy-table__row--error[data-v-06e98942] {
  opacity: 0.6;
}
.deploy-table__loading-row[data-v-06e98942],
.deploy-table__empty-row[data-v-06e98942] {
  text-align: center;
}
.deploy-table__loading-cell[data-v-06e98942],
.deploy-table__empty-cell[data-v-06e98942] {
  padding: 2rem;
  color: var(--text-secondary);
  width: 100%;
  min-width: 200px;
}
.deploy-table__loading-cell[data-v-06e98942] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  white-space: nowrap;
}
.deploy-table__col-checkbox[data-v-06e98942] {
  width: 3rem;
  text-align: left; /* 좌측 정렬로 변경 */
  padding-left: 0.75rem; /* 좌측 여백으로 정렬 맞춤 */
}
.deploy-table__col-server[data-v-06e98942] {
  min-width: 120px;
  font-weight: 500;
}
.deploy-table__col-url[data-v-06e98942] {
  min-width: 150px;
  max-width: 250px;
}
.deploy-url-text[data-v-06e98942] {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-secondary);
  font-family: monospace;
  font-size: 0.8125rem;
}
.deploy-url-empty[data-v-06e98942] {
  color: var(--text-secondary);
  font-style: italic;
}
.deploy-table__col-exists[data-v-06e98942] {
  width: 6rem;
}
.deploy-table th.deploy-table__col-exists[data-v-06e98942],
.deploy-table td.deploy-table__col-exists[data-v-06e98942] {
  text-align: center;
}
.deploy-table__col-size[data-v-06e98942] {
  width: 8rem;
  font-variant-numeric: tabular-nums;
}
.deploy-table th.deploy-table__col-size[data-v-06e98942],
.deploy-table td.deploy-table__col-size[data-v-06e98942] {
  text-align: right;
}
.deploy-table__col-modified[data-v-06e98942] {
  min-width: 140px;
  font-variant-numeric: tabular-nums;
}
.deploy-table th.deploy-table__col-modified[data-v-06e98942],
.deploy-table td.deploy-table__col-modified[data-v-06e98942] {
  text-align: center;
}
.deploy-table__col-status[data-v-06e98942] {
  min-width: 120px;
  text-align: left;
}
.deploy-table__sortable[data-v-06e98942] {
  cursor: pointer;
  user-select: none;
}
.deploy-table__sortable[data-v-06e98942]:hover {
  background: var(--bg-hover);
}
.deploy-table__sortable-text[data-v-06e98942] {
  display: inline-block;
  white-space: nowrap;
}
.deploy-table__sortable i[data-v-06e98942] {
  display: inline-block;
  margin-left: 0.25rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
  opacity: 0.3;
  vertical-align: middle;
  width: 0.75rem;
  text-align: center;
}
.deploy-table__sortable:hover i.fa-up-down[data-v-06e98942] {
  opacity: 0.5;
}
.deploy-table th.deploy-table__sortable i.fa-sort-up[data-v-06e98942],
.deploy-table th.deploy-table__sortable i.fa-sort-down[data-v-06e98942] {
  opacity: 1;
  color: var(--primary-color);
}
.deploy-table th.deploy-table__sortable i.fa-up-down[data-v-06e98942] {
  opacity: 0;
  visibility: hidden;
}
.deploy-status-badge[data-v-06e98942] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 500;
  white-space: nowrap;
}
.deploy-status-badge--exists[data-v-06e98942] {
  background: var(--surface-success-soft);
  color: var(--color-success);
}
.deploy-status-badge--not-exists[data-v-06e98942] {
  background: var(--surface-muted);
  color: var(--text-secondary);
}
.deploy-status-badge--success[data-v-06e98942] {
  background: var(--surface-success-soft);
  color: var(--color-success);
}
.deploy-status-badge--error[data-v-06e98942] {
  background: var(--surface-danger-soft);
  color: var(--color-danger);
}
.deploy-status-badge--deploying[data-v-06e98942] {
  background: var(--surface-primary-soft);
  color: var(--primary-color);
}
.deploy-status-badge--idle[data-v-06e98942] {
  background: var(--surface-muted);
  color: var(--text-secondary);
}
.deploy-text-empty[data-v-06e98942] {
  color: var(--text-secondary);
  font-style: italic;
}
@keyframes pulse-06e98942 {
0%, 100% {
    opacity: 1;
}
50% {
    opacity: 0.7;
}
}

/* 모바일 반응형 */
@media (max-width: 768px) {
.deploy-buttons[data-v-06e98942] {
    flex-wrap: wrap;
    justify-content: flex-end; /* 줄바꿈 시 오른쪽 정렬 */
}
.deploy-buttons-right[data-v-06e98942] {
    order: 1; /* 버튼을 위로 */
    margin-left: auto; /* 오른쪽 정렬 유지 */
}
.deploy-server-count[data-v-06e98942] {
    order: 2; /* 메시지를 아래로 */
    flex-basis: 100%; /* 메시지가 전체 너비를 차지 */
}
.deploy-table-wrapper[data-v-06e98942] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.deploy-table[data-v-06e98942] {
    min-width: 800px;
}
.deploy-table th[data-v-06e98942],
  .deploy-table td[data-v-06e98942] {
    padding: 0.5rem;
    font-size: 0.8125rem;
}
.deploy-table__col-url[data-v-06e98942] {
    max-width: 200px;
}
}
@media (max-width: 480px) {
.deploy-button[data-v-06e98942] {
    padding: 0.4rem 0.75rem;
    font-size: 0.8125rem;
}
.deploy-table[data-v-06e98942] {
    min-width: 0; /* 2개 컬럼만 표시하므로 최소 너비 제거 */
}
.deploy-table th[data-v-06e98942],
  .deploy-table td[data-v-06e98942] {
    padding: 0.4rem;
    font-size: 0.75rem;
}
  
  /* 3개 컬럼만 표시: 체크박스, 서버, 상태 */
.deploy-table thead th.deploy-table__col-exists[data-v-06e98942],
  .deploy-table tbody td.deploy-table__col-exists[data-v-06e98942],
  .deploy-table thead th.deploy-table__col-size[data-v-06e98942],
  .deploy-table tbody td.deploy-table__col-size[data-v-06e98942],
  .deploy-table thead th.deploy-table__col-modified[data-v-06e98942],
  .deploy-table tbody td.deploy-table__col-modified[data-v-06e98942] {
    display: none;
}
}

/* 수직 분리대 스타일 (인라인 — VerticalSplitter 컴포넌트와 동일 동작) */
.vertical-split-resizer[data-v-06e98942] {
  flex-shrink: 0;
  width: 8px;
  background: var(--border-color);
  cursor: col-resize;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s, opacity 0.2s, width 0.2s;
  /* 반드시 --z-resize-overlay 보다 높아야 < = > 버튼이 클릭됨 (tokens.css 주석 참고) */
  z-index: var(--z-splitter);
  overflow: visible;
}
.vertical-split-resizer.compact[data-v-06e98942] {
  opacity: 1;
  cursor: pointer;
  width: 32px;
  background: var(--surface-color-secondary);
  border-left: 1px solid var(--border-color);
  border-right: 1px solid var(--border-color);
}
.vertical-split-resizer[data-v-06e98942]:hover:not(.compact) {
  background: var(--primary-color);
}
.vertical-split-resizer.compact[data-v-06e98942]:hover {
  opacity: 1;
  background: var(--bg-hover, var(--surface-muted));
  border-left-color: var(--primary-color);
  border-right-color: var(--primary-color);
}
.vertical-split-resizer.resizing[data-v-06e98942] {
  background: var(--primary-color);
}
.vertical-split-resizer-handle[data-v-06e98942] {
  width: 3px;
  height: 40px;
  background: var(--text-secondary);
  border-radius: 2px;
  opacity: 0.6;
  transition: opacity 0.2s;
}
.vertical-split-resizer:hover .vertical-split-resizer-handle[data-v-06e98942],
.vertical-split-resizer.resizing .vertical-split-resizer-handle[data-v-06e98942] {
  opacity: 1;
}
.vertical-split-resizer-controls[data-v-06e98942] {
  position: absolute;
  top: 0.5rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  z-index: 100;
  pointer-events: auto;
  overflow: visible;
}
.chat-pane[data-v-06e98942] {
  flex-shrink: 0;
  height: 100%;
  overflow: hidden;
  transition: width 0.2s ease;
}
.chat-pane-toggle-button[data-v-06e98942] {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 80px;
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-right: none;
  border-radius: 4px 0 0 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  z-index: 100;
  color: var(--text-secondary);
}
.chat-pane-toggle-button[data-v-06e98942]:hover {
  background: var(--primary-color);
  color: var(--color-white);
  border-color: var(--primary-color);
}
.chat-pane-toggle-button i[data-v-06e98942] {
  font-size: 1rem;
}

/* 다크 테마 */
html[data-theme='dark'] .vertical-split-resizer.compact[data-v-06e98942],
body[data-theme='dark'] .vertical-split-resizer.compact[data-v-06e98942] {
  background: var(--border-color);
  border-left-color: var(--border-color);
  border-right-color: var(--border-color);
}
html[data-theme='dark'] .vertical-split-resizer.compact[data-v-06e98942]:hover,
body[data-theme='dark'] .vertical-split-resizer.compact[data-v-06e98942]:hover {
  background: var(--surface-hover);
  border-left-color: var(--primary-color);
  border-right-color: var(--primary-color);
}

/* ═══ 모바일 전체 레이아웃 ═══ */
.crawling-mobile-layout[data-v-06e98942] {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.crawling-mobile-content[data-v-06e98942] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ═══ 모바일 코딩 하위 탭 ═══ */
.mobile-coding-layout[data-v-06e98942] {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.mobile-coding-content[data-v-06e98942] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.mobile-coding-content .scraper-editor-wrapper[data-v-06e98942] {
  flex: 1 1 0;
  min-height: 0;
}
.mobile-coding-content .test-pane[data-v-06e98942] {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.icon-streaming[data-v-06e98942] {
  animation: iconStreaming-06e98942 1.2s ease-in-out infinite;
  color: var(--primary-color);
  filter: drop-shadow(0 0 4px var(--primary-color));
}
@keyframes iconStreaming-06e98942 {
0%, 100% {
    opacity: 1;
    transform: scale(1);
    filter: drop-shadow(0 0 4px var(--primary-color));
}
50% {
    opacity: 0.3;
    transform: scale(1.15);
    filter: drop-shadow(0 0 8px var(--primary-color));
}
}


.help-tab[data-v-628602b5] {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}
.help-tab__body[data-v-628602b5] {
  flex: 1;
  overflow-y: auto;
  padding: 12px 14px 24px;
}

/* 목차 */
.help-tab__toc[data-v-628602b5] {
  margin-bottom: 16px;
  padding: 10px 12px;
  background: var(--surface-muted);
  border-radius: 6px;
  border: 1px solid var(--border-color);
}
.help-tab__toc-title[data-v-628602b5] {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
}
.help-tab__toc-title i[data-v-628602b5] {
  font-size: 12px;
  color: var(--text-tertiary);
}
.help-tab__toc-list[data-v-628602b5] {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
}
.help-tab__toc-list li[data-v-628602b5] {
  font-size: 12px;
}
.help-tab__toc-link[data-v-628602b5] {
  color: var(--primary-color);
  cursor: pointer;
  text-decoration: none;
}
.help-tab__toc-link[data-v-628602b5]:hover {
  text-decoration: underline;
}

/* 섹션 */
.help-tab__section[data-v-628602b5] {
  margin-bottom: 18px;
  padding-top: 4px;
}
.help-tab__section-title[data-v-628602b5] {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border-color);
}
.help-tab__section-title i[data-v-628602b5] {
  font-size: 13px;
  color: var(--primary-color);
}
.help-tab__text[data-v-628602b5] {
  margin: 0 0 8px;
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--text-secondary);
}
.help-tab__list[data-v-628602b5] {
  margin: 4px 0 8px;
  padding-left: 18px;
  font-size: 12.5px;
  line-height: 1.8;
  color: var(--text-secondary);
}
.help-tab__list li[data-v-628602b5] {
  margin-bottom: 2px;
}

/* 카드 */
.help-tab__card[data-v-628602b5] {
  margin: 8px 0;
  padding: 8px 10px;
  background: var(--surface-muted);
  border-radius: 5px;
  border-left: 3px solid var(--primary-color);
}
.help-tab__card-title[data-v-628602b5] {
  margin: 0 0 4px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 5px;
}
.help-tab__card-title i[data-v-628602b5] {
  font-size: 11px;
  color: var(--primary-color);
}

/* 테이블 */
.help-tab__table[data-v-628602b5] {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  margin: 8px 0;
}
.help-tab__table th[data-v-628602b5],
.help-tab__table td[data-v-628602b5] {
  padding: 5px 8px;
  border: 1px solid var(--border-color);
  text-align: left;
}
.help-tab__table th[data-v-628602b5] {
  background: var(--surface-muted);
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
}
.help-tab__table td[data-v-628602b5] {
  color: var(--text-secondary);
}
.help-tab__table td i[data-v-628602b5] {
  color: var(--text-tertiary);
}
.help-tab__table kbd[data-v-628602b5] {
  display: inline-block;
  padding: 1px 5px;
  font-size: 11px;
  font-family: inherit;
  color: var(--text-primary);
  background: var(--surface-muted);
  border: 1px solid var(--border-color);
  border-radius: 3px;
  box-shadow: 0 1px 0 var(--border-color);
}

/* 맨 위로 */
.help-tab__back-top[data-v-628602b5] {
  text-align: center;
  padding: 8px 0 4px;
}
.help-tab__back-top a[data-v-628602b5] {
  font-size: 12px;
  color: var(--text-tertiary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.help-tab__back-top a[data-v-628602b5]:hover {
  color: var(--primary-color);
}

/* deep styles for v-html bold */
.help-tab__text[data-v-628602b5] strong,
.help-tab__list[data-v-628602b5] strong {
  font-weight: 600;
  color: var(--text-primary);
}
.help-tab__text[data-v-628602b5] [data-highlight],
.help-tab__list[data-v-628602b5] [data-highlight] {
  color: var(--primary-color);
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 2px;
  cursor: pointer;
}
.help-tab__text[data-v-628602b5] [data-highlight]:hover,
.help-tab__list[data-v-628602b5] [data-highlight]:hover {
  text-decoration-style: solid;
}
.help-tab__text[data-v-628602b5] code,
.help-tab__list[data-v-628602b5] code {
  padding: 1px 4px;
  font-size: 11.5px;
  background: var(--surface-muted);
  border-radius: 3px;
  color: var(--primary-color);
}

.todo-work-type-meta[data-v-5cb91dc4] {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
}

/* 상태 표시 (로딩/에러/문서없음) */
.meta-state[data-v-5cb91dc4] {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 2rem;
}
.meta-state__icon[data-v-5cb91dc4] {
  font-size: 2.5rem;
  color: var(--text-tertiary);
}
.meta-state__icon--error[data-v-5cb91dc4] {
  color: var(--warning-color, var(--color-warning));
}
.meta-state__text[data-v-5cb91dc4] {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--text-secondary);
}

/* .meta-state__retry → AppButton variant="secondary" size="sm" */

/* 좌우 분할 컨테이너 */
.vertical-split-container {
&[data-v-5cb91dc4] {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: row;
  overflow: hidden;
  position: relative;
  flex: 1 1 0;
  min-height: 0;
  }
&.swapped[data-v-5cb91dc4] {
    flex-direction: row-reverse;
}
}

/* 드래그 중 iframe/PDF 가 마우스 이벤트 가로채지 못하게 깔리는 overlay.
   z-index 규칙은 tokens.css 의 --z-resize-overlay 주석 참고. */
.resize-overlay[data-v-5cb91dc4] {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-resize-overlay);
  cursor: col-resize;
}
.meta-left-pane[data-v-5cb91dc4] {
  flex-shrink: 0;
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.meta-right-pane[data-v-5cb91dc4] {
  flex-shrink: 0;
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--surface-color);
}

/* 뷰어 영역 */
.meta-viewer__container[data-v-5cb91dc4] {
  flex: 1 1 0;
  min-height: 0;
  position: relative;
}
.meta-viewer__iframe[data-v-5cb91dc4] {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}
.meta-viewer__onlyoffice[data-v-5cb91dc4] {
  width: 100%;
  height: 100%;
  display: block;
}
.meta-viewer__fallback[data-v-5cb91dc4] {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}
.meta-viewer__fallback-content[data-v-5cb91dc4] {
  text-align: center;
}
.meta-viewer__fallback-icon[data-v-5cb91dc4] {
  font-size: 3rem;
  color: var(--text-tertiary);
  margin-bottom: 1rem;
}
.meta-viewer__fallback-title[data-v-5cb91dc4] {
  margin: 0 0 0.5rem 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.meta-viewer__fallback-message[data-v-5cb91dc4] {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-secondary);
}

/* 분리대 관련 룰은 모두 공통 컴포넌트 VerticalSplitter (scoped) 로 이동됨 */

/* 우측 패널: 문서 정보 헤더 */
.meta-editor-header[data-v-5cb91dc4] {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}
.meta-editor-header__product-row[data-v-5cb91dc4] {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.375rem 0.5rem;
  margin-bottom: 0.375rem;
  border-radius: 4px;
}
.meta-editor-header__product-row.flash-highlight[data-v-5cb91dc4] {
  animation: flash-pulse-5cb91dc4 0.5s ease-in-out 3;
}
@keyframes flash-pulse-5cb91dc4 {
0%, 100% { background: transparent;
}
50% { background: var(--surface-primary-soft);
}
}
.meta-editor-header__product[data-v-5cb91dc4] {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.4;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-align: center;
}
.meta-editor-header__version[data-v-5cb91dc4] {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-tertiary);
}
.meta-editor-header__details[data-v-5cb91dc4] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.meta-editor-header__left[data-v-5cb91dc4] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  min-width: 0;
}
.meta-editor-header__favicon[data-v-5cb91dc4] {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  border-radius: 2px;
}
.meta-editor-header__company[data-v-5cb91dc4] {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-secondary);
  white-space: nowrap;
}
.meta-editor-header__period[data-v-5cb91dc4] {
  font-size: 0.6875rem;
  color: var(--text-tertiary);
  white-space: nowrap;
}
.meta-editor-header__doctype[data-v-5cb91dc4] {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--text-primary);
  white-space: nowrap;
  flex-shrink: 0;
}
.meta-editor-header__doctype-select {
&[data-v-5cb91dc4] {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--text-primary);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 4px;
  padding: 0.125rem 0.375rem;
  cursor: pointer;
  flex-shrink: 0;
  outline: none;
  text-align: center;
  text-align-last: center;
  }
&[data-v-5cb91dc4]:hover {
    border-color: var(--primary-color);
}
&[data-v-5cb91dc4]:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 1px var(--primary-color);
}
}
.meta-editor-header__version-nav[data-v-5cb91dc4] {
  display: inline-flex;
  align-items: center;
  gap: 0.125rem;
  flex-shrink: 0;
}

/* .meta-editor-header__version-btn → AppButton icon-only variant="ghost" size="xs" */
.meta-editor-header__version-btn[data-v-5cb91dc4] {
  width: 1.25rem;
  height: 1.25rem;
}
.meta-editor-header__version-select {
&[data-v-5cb91dc4] {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-secondary);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 3px;
  padding: 0 0.25rem;
  height: 1.25rem;
  cursor: pointer;
  outline: none;
  text-align: center;
  text-align-last: center;
  min-width: 2.5rem;
  }
&[data-v-5cb91dc4]:hover { border-color: var(--primary-color);
}
&[data-v-5cb91dc4]:focus { border-color: var(--primary-color); box-shadow: 0 0 0 1px var(--primary-color);
}
}
.meta-editor-header__return-btn {
&[data-v-5cb91dc4] {
  color: var(--primary-color);
  }
&[data-v-5cb91dc4]:hover:not(:disabled) {
    color: var(--primary-color);
}
}
.meta-editor-header__file-info[data-v-5cb91dc4] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  white-space: nowrap;
  flex-shrink: 0;
}

/* 우측 패널: 편집 본문 */
.meta-editor-body[data-v-5cb91dc4] {
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* 추출 상태바 */
.meta-extraction-status[data-v-5cb91dc4] {
  flex-shrink: 0;
  padding: 0.625rem 0.75rem;
  border-bottom: 1px solid var(--border-color);
}
.extraction-status[data-v-5cb91dc4] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.extraction-status__icon[data-v-5cb91dc4] {
  font-size: 0.875rem;
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.extraction-status__icon--done[data-v-5cb91dc4] {
  color: var(--success-color);
}
.extraction-status__text[data-v-5cb91dc4] {
  font-size: 0.8125rem;
  color: var(--text-secondary);
  flex: 1;
  min-width: 0;
}
.extraction-status__text strong[data-v-5cb91dc4] {
  color: var(--text-primary);
  font-weight: 600;
}
.extraction-status__percent[data-v-5cb91dc4] {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--primary-color);
  flex-shrink: 0;
}

/* .extraction-status__btn → AppButton variant="primary/secondary/ghost" size="sm" */
.extraction-status__btn[data-v-5cb91dc4] {
  flex-shrink: 0;
}
.extraction-status__style-toggle[data-v-5cb91dc4] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
  cursor: pointer;
  margin-left: auto;
}
.extraction-status__toggle-input[data-v-5cb91dc4] {
  display: none;
}
.extraction-status__toggle-track[data-v-5cb91dc4] {
  position: relative;
  width: 56px;
  height: 20px;
  border-radius: 10px;
  background: var(--border-color);
  transition: background 0.2s;
  flex-shrink: 0;
  overflow: hidden;
}
.extraction-status__toggle-label[data-v-5cb91dc4] {
  position: absolute;
  top: 0;
  height: 100%;
  display: flex;
  align-items: center;
  font-size: 0.625rem;
  font-weight: 600;
  pointer-events: none;
  transition: opacity 0.2s;
}
.extraction-status__toggle-label--off[data-v-5cb91dc4] {
  left: 22px;
  color: var(--text-secondary);
  opacity: 1;
}
.extraction-status__toggle-label--on[data-v-5cb91dc4] {
  left: 5px;
  color: var(--color-white);
  opacity: 0;
}
.extraction-status__toggle-thumb[data-v-5cb91dc4] {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--color-white);
  box-shadow: var(--shadow-sm);
  transition: left 0.2s;
}
.extraction-status__toggle-input:checked + .extraction-status__toggle-track[data-v-5cb91dc4] {
  background: var(--primary-color);
}
.extraction-status__toggle-input:checked + .extraction-status__toggle-track .extraction-status__toggle-thumb[data-v-5cb91dc4] {
  left: 38px;
}
.extraction-status__toggle-input:checked + .extraction-status__toggle-track .extraction-status__toggle-label--off[data-v-5cb91dc4] {
  opacity: 0;
}
.extraction-status__toggle-input:checked + .extraction-status__toggle-track .extraction-status__toggle-label--on[data-v-5cb91dc4] {
  opacity: 1;
}

/* 추출 진행 */
.extraction-progress-row[data-v-5cb91dc4] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
}
.extraction-progress-bar[data-v-5cb91dc4] {
  height: 4px;
  width: 100%;
  background: var(--border-color);
  border-radius: 2px;
  overflow: hidden;
  margin-top: 0.375rem;
}
.extraction-progress-fill[data-v-5cb91dc4] {
  height: 100%;
  background: var(--primary-color);
  border-radius: 2px;
  transition: width 0.3s ease;
}

/* 라이브 텍스트 */
.extraction-steps[data-v-5cb91dc4] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-top: 0.375rem;
  width: 100%;
  overflow-x: auto;
  white-space: nowrap;
  font-size: 0.7rem;
  line-height: 1;
  scrollbar-width: none;         /* Firefox */
  -ms-overflow-style: none;      /* IE/Edge */
}
.extraction-steps[data-v-5cb91dc4]::-webkit-scrollbar {
  display: none;                  /* Chrome/Safari */
}
.extraction-step[data-v-5cb91dc4] {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  transition: opacity 0.2s;
}
.extraction-step--pending[data-v-5cb91dc4] {
  opacity: 0.3;
}
.extraction-step--done[data-v-5cb91dc4] {
  opacity: 0.5;
}
.extraction-step--done .extraction-step__icon[data-v-5cb91dc4] {
  color: var(--color-success);
  font-size: 0.55rem;
}
.extraction-step--running[data-v-5cb91dc4] {
  opacity: 1;
  font-weight: 600;
  color: var(--color-primary, var(--color-info));
}
.extraction-step--running .extraction-step__icon[data-v-5cb91dc4] {
  color: var(--color-primary, var(--color-info));
  font-size: 0.6rem;
}
.extraction-step--failed .extraction-step__icon[data-v-5cb91dc4] {
  color: var(--color-danger);
  font-size: 0.6rem;
}
.extraction-step__icon[data-v-5cb91dc4] {
  font-size: 0.4rem;
}
.extraction-step__sep[data-v-5cb91dc4] {
  font-size: 0.45rem;
  opacity: 0.3;
  margin: 0 0.1rem;
}
.meta-left-tabs__content[data-v-5cb91dc4] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ═══ 모바일 레이아웃 ═══ */
.meta-mobile-layout[data-v-5cb91dc4] {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
}
.meta-mobile-content[data-v-5cb91dc4] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* 분리대 다크 테마 보정은 VerticalSplitter 자체가 CSS 변수로 처리 */

/* 모바일: 세로 스택 */
@media (max-width: 768px) {
.vertical-split-container[data-v-5cb91dc4] {
    flex-direction: column;
}
.meta-left-pane[data-v-5cb91dc4] {
    width: 100% !important;
    height: 50%;
    flex-shrink: 0;
}
.meta-right-pane[data-v-5cb91dc4] {
    width: 100% !important;
    height: 50%;
    flex-shrink: 0;
}
.meta-editor-header[data-v-5cb91dc4] {
    padding: 0.5rem 0.75rem;
}
.meta-editor-header__product[data-v-5cb91dc4] {
    font-size: 0.8125rem;
    flex-basis: 100%;
    text-align: center;
}
.meta-editor-header__doctype[data-v-5cb91dc4] {
    font-size: 0.8125rem;
}
.meta-editor-header__file-info[data-v-5cb91dc4] {
    display: none;
}
}
.icon-streaming[data-v-5cb91dc4] {
  animation: iconStreaming-5cb91dc4 1.2s ease-in-out infinite;
  color: var(--primary-color);
  filter: drop-shadow(0 0 4px var(--primary-color));
}
@keyframes iconStreaming-5cb91dc4 {
0%, 100% {
    opacity: 1;
    transform: scale(1);
    filter: drop-shadow(0 0 4px var(--primary-color));
}
50% {
    opacity: 0.3;
    transform: scale(1.15);
    filter: drop-shadow(0 0 8px var(--primary-color));
}
}
.meta-unextracted-cta[data-v-5cb91dc4] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3, 0.75rem);
  padding: var(--space-6, 1.5rem);
  margin: var(--space-4, 1rem) auto;
  max-width: 32rem;
  text-align: center;
  color: var(--text-secondary);
}
.meta-unextracted-cta__icon[data-v-5cb91dc4] {
  font-size: 2.5rem;
  color: var(--text-muted, var(--text-secondary));
  opacity: 0.6;
}
.meta-unextracted-cta__text[data-v-5cb91dc4] {
  margin: 0;
  font-size: 0.9rem;
  color: var(--text-primary);
  line-height: 1.5;
}

/* .meta-unextracted-cta__btn → AppButton variant="primary" size="sm" */

.todo-work-type-document[data-v-b524b172] {
  padding: 1.5rem;
}
.todo-work-type__header[data-v-b524b172] {
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border-color);
}
.todo-work-type__title[data-v-b524b172] {
  margin: 0 0 0.5rem 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.todo-work-type__title i[data-v-b524b172] {
  color: var(--primary-color);
}
.todo-work-type__description[data-v-b524b172] {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-secondary);
}
.todo-work-type__body[data-v-b524b172] {
  color: var(--text-primary);
}
.todo-work-form[data-v-b524b172] {
  padding: 1rem;
  background: var(--surface-color-secondary);
  border-radius: 8px;
  border: 1px solid var(--border-color);
}

.todo-comment-card[data-v-ded077da] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 8px);
  padding: var(--space-3, 12px) var(--space-4, 16px);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 6px);
}
.todo-comment-card__header[data-v-ded077da] {
  display: flex;
  align-items: center;
  gap: var(--space-2, 8px);
}
.todo-comment-card__avatar[data-v-ded077da] {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--surface-color-secondary, var(--surface-color));
  flex-shrink: 0;
}
.todo-comment-card__avatar--initial[data-v-ded077da] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
}
.todo-comment-card__meta[data-v-ded077da] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}
.todo-comment-card__name[data-v-ded077da] {
  font-weight: 600;
  color: var(--text-primary);
  font-size: 0.9rem;
}
.todo-comment-card__uid[data-v-ded077da] {
  font-weight: 400;
  color: var(--text-tertiary, var(--text-secondary));
  font-size: 0.85em;
  margin-left: 2px;
}
.todo-comment-card__time[data-v-ded077da] {
  font-size: 0.8rem;
  color: var(--text-tertiary, var(--text-secondary));
}
.todo-comment-card__edited[data-v-ded077da] {
  margin-left: 0.25em;
}
.todo-comment-card__actions[data-v-ded077da] {
  display: flex;
  gap: 2px;
  flex-shrink: 0;
}
.todo-comment-card__action--danger[data-v-ded077da]:hover {
  color: var(--color-danger) !important;
}
.todo-comment-card__body[data-v-ded077da] {
  font-size: 0.9rem;
  color: var(--text-primary);
  line-height: 1.6;
  word-break: break-word;
}
.todo-comment-card__body[data-v-ded077da] img {
  max-width: 100%;
  border-radius: var(--radius-sm, 4px);
}
.todo-comment-card__body[data-v-ded077da] p {
  margin: 0 0 0.5em;
}
.todo-comment-card__body[data-v-ded077da] p:last-child {
  margin-bottom: 0;
}
.todo-comment-card__body[data-v-ded077da] pre {
  background: var(--surface-color-secondary, transparent);
  padding: var(--space-2, 8px);
  border-radius: var(--radius-sm, 4px);
  overflow-x: auto;
}
.todo-comment-card__body[data-v-ded077da] code {
  background: var(--surface-color-secondary, transparent);
  padding: 1px 4px;
  border-radius: var(--radius-sm, 3px);
  font-size: 0.85em;
}
.todo-comment-card__replies[data-v-ded077da] {
  margin-top: var(--space-2, 8px);
  margin-left: var(--space-5, 20px);
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 8px);
  border-left: 2px solid var(--border-color);
  padding-left: var(--space-3, 12px);
}

.todo-comment-form[data-v-d1a5f46d] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 8px);
}
.todo-comment-form__reply-banner[data-v-d1a5f46d] {
  display: flex;
  align-items: center;
  gap: var(--space-2, 8px);
  padding: var(--space-1, 4px) var(--space-2, 8px);
  background: var(--surface-color-secondary, transparent);
  border-radius: var(--radius-sm, 4px);
  font-size: 0.85rem;
  color: var(--text-secondary);
}
.todo-comment-form__cancel-reply[data-v-d1a5f46d] {
  margin-left: auto;
}
.todo-comment-form__actions[data-v-d1a5f46d] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2, 8px);
}
.todo-comment-form__error[data-v-d1a5f46d] {
  flex: 1;
  color: var(--color-danger);
  font-size: 0.85rem;
}

.todo-system-note[data-v-4252ae86] {
  display: flex;
  align-items: flex-start; /* 첫 줄 기준 정렬 — 사유가 추가돼 row 가 커져도 위쪽으로 붙음 */
  gap: var(--space-2, 8px);
  padding: var(--space-1, 4px) 0;
  font-size: 0.875rem;
  color: var(--text-secondary);
  /* rail 옆 들여쓰기 — 아이콘(반지름 11) 우측 끝 + 충분한 여백 */
  padding-left: calc(var(--rail-x, 14px) + 22px);
  position: relative;
}
/* 액션 아이콘이 rail 위에 그려짐 — 첫 줄(작업자/내용) 가운데에 맞춤 */
.todo-system-note__rail-icon[data-v-4252ae86] {
  position: absolute;
  left: var(--rail-x, 14px);
  top: calc(var(--space-1, 4px) + 11px); /* padding-top + 아이콘 반지름 = 첫 줄 중심 */
  transform: translate(-50%, -50%);
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  color: var(--text-secondary);
  font-size: 0.75rem;
  z-index: 1;
}
/* 작업자 아바타 — 본문 안쪽, 이름 앞에 인라인 배치 */
.todo-system-note__avatar[data-v-4252ae86] {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--surface-color);
  vertical-align: middle;
  margin-right: 4px;
  flex-shrink: 0;
}
.todo-system-note__avatar--initial[data-v-4252ae86] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  font-weight: 600;
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
}
.todo-system-note__actor-uid[data-v-4252ae86] {
  color: var(--text-tertiary, var(--text-secondary));
  font-size: 0.85em;
  margin-left: 2px;
}
.todo-system-note__text[data-v-4252ae86] {
  flex: 1;
  min-width: 0;
}
.todo-system-note__actor[data-v-4252ae86] {
  color: var(--text-primary);
  font-weight: 600;
}
.todo-system-note__verb[data-v-4252ae86] {
  color: var(--text-secondary);
  margin-left: 0.5em; /* actor-uid 가 없는 경우(uid == name)에도 verb 와 간격 확보 */
}
/* 상태 뱃지 — TodoEditView 의 todo-timeline__status-badge 와 동일 색상 체계 */
.todo-system-note__status-badge[data-v-4252ae86] {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.5rem;
  border-radius: var(--radius-sm, 4px);
  font-size: 0.85em;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
  vertical-align: middle;
}
.todo-system-note__status-badge--pending[data-v-4252ae86] {
  background: var(--surface-lime-soft);
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
}
.todo-system-note__status-badge--in_progress[data-v-4252ae86] {
  background: var(--surface-info-soft);
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
}
.todo-system-note__status-badge--review[data-v-4252ae86] {
  background: var(--surface-orange-soft);
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
}
.todo-system-note__status-badge--completed[data-v-4252ae86] {
  background: var(--surface-primary-soft);
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
}
.todo-system-note__status-badge--cancelled[data-v-4252ae86] {
  background: var(--surface-danger-soft);
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
}
.todo-system-note__reason[data-v-4252ae86] {
  font-style: normal;
  color: var(--text-tertiary, var(--text-secondary));
  /* 상태 변경 사유는 항상 다음 줄에 배치 */
  display: block;
  margin-top: 2px;
}
.todo-system-note__time[data-v-4252ae86] {
  color: var(--text-tertiary, var(--text-secondary));
  font-size: 0.8em;
  white-space: nowrap;
  flex-shrink: 0;
}

.todo-status-panel[data-v-b572876a] {
  /* timeline rail 의 x 좌표 (panel 좌측 내부 기준). 자식들이 inherit 받아 사용 */
  --rail-x: 14px;
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 12px);
  padding: var(--space-4, 16px);
  max-width: 960px;
  margin: 0 auto;
  width: 100%;
}
.todo-status-panel__header[data-v-b572876a] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-2, 8px);
  /* 스크롤 시 상단 고정 — 활동 탭 스크롤 컨테이너 기준 */
  position: sticky;
  top: 0;
  z-index: var(--z-sticky, 10);
  background: var(--surface-color);
  padding: var(--space-2, 8px) 0;
  border-bottom: 1px solid var(--border-color);
  /* panel 의 좌우 padding 만큼 헤더가 좌우 끝까지 가도록 — sticky 일 때 시각적 단절 방지 */
  margin: calc(-1 * var(--space-4, 16px)) calc(-1 * var(--space-4, 16px)) 0;
  padding-left: var(--space-4, 16px);
  padding-right: var(--space-4, 16px);
}
.todo-status-panel__title[data-v-b572876a] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
  display: inline-flex;
  align-items: center;
  gap: var(--space-1, 4px);
  flex-shrink: 1;
  min-width: 0;
  white-space: nowrap;
}
.todo-status-panel__title-count[data-v-b572876a] {
  color: var(--text-secondary);
  font-weight: 400;
  font-size: 0.85em;
  margin-left: 0.125rem;
}
/* 타이틀 앞 inline 접기 토글 — 디스클로저 위젯 스타일 (>) */
.todo-status-panel__close-btn[data-v-b572876a] {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5em;
  height: 1.5em;
  border: 0;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.85em;
  padding: 0;
  border-radius: var(--radius-sm, 4px);
  transition: background 0.15s ease, color 0.15s ease;
}
.todo-status-panel__close-btn[data-v-b572876a]:hover {
  background: var(--surface-color-secondary, var(--border-color));
  color: var(--text-primary);
}
.todo-status-panel__controls[data-v-b572876a] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1, 4px);
  position: relative;
  flex-shrink: 0;
  /* 좁아져서 줄바꿈되면 자체 라인에서 우측 정렬 유지 */
  margin-left: auto;
}
.todo-status-panel__dropdown[data-v-b572876a] {
  position: relative;
}
.todo-status-panel__dropdown--open .todo-status-panel__dropdown-btn[data-v-b572876a] {
  border-color: var(--primary-color) !important;
}
.todo-status-panel__dropdown-caret[data-v-b572876a] {
  font-size: 0.7em;
  color: var(--text-secondary);
}
.todo-status-panel__dropdown-menu[data-v-b572876a] {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  min-width: 180px;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md, 6px);
  box-shadow: var(--shadow-md);
  padding: var(--space-1, 4px);
  margin: 0;
  list-style: none;
  z-index: var(--z-dropdown, 100);
}
.todo-status-panel__dropdown-item[data-v-b572876a] {
  appearance: none;
  background: transparent;
  border: 0;
  width: 100%;
  padding: 0.5rem 0.75rem;
  border-radius: var(--radius-sm, 4px);
  display: flex;
  align-items: center;
  gap: var(--space-2, 8px);
  font-size: 0.875rem;
  color: var(--text-primary);
  cursor: pointer;
  text-align: left;
}
.todo-status-panel__dropdown-item[data-v-b572876a]:hover {
  background: var(--surface-color-secondary, var(--border-color));
}
.todo-status-panel__dropdown-item--active[data-v-b572876a] {
  font-weight: 600;
}
.todo-status-panel__dropdown-item-check[data-v-b572876a] {
  /* 체크 영역을 항상 같은 너비로 확보 → 선택/비선택 항목의 라벨 시작 위치 정렬 */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1em;
  flex-shrink: 0;
}
.todo-status-panel__dropdown-item-check .fa-check[data-v-b572876a] {
  color: var(--primary-color);
  font-size: 0.85em;
}
.todo-status-panel__dropdown-item-label[data-v-b572876a] {
  flex: 1;
}
/* timeline rail: ol 의 좌측에 세로 라인 */
.todo-status-panel__timeline[data-v-b572876a] {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 12px);
}
.todo-status-panel__timeline[data-v-b572876a]::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--rail-x);
  width: 2px;
  background: var(--border-color);
  border-radius: 2px;
  transform: translateX(-50%);
}
.todo-status-panel__entry[data-v-b572876a] {
  position: relative;
}
/* 댓글 카드는 rail 들여쓰기 적용 + 점 마커 */
.todo-status-panel__comment-slot[data-v-b572876a] {
  /* rail 아이콘(반지름 11) 우측 끝 + 충분한 여백 */
  padding-left: calc(var(--rail-x) + 22px);
  position: relative;
}
.todo-status-panel__comment-icon[data-v-b572876a] {
  position: absolute;
  left: var(--rail-x);
  top: var(--space-4, 16px);
  transform: translate(-50%, -50%);
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  color: var(--primary-color);
  font-size: 0.75rem;
  z-index: 1;
}
.todo-status-panel__empty[data-v-b572876a] {
  padding: var(--space-6, 24px);
  text-align: center;
  color: var(--text-tertiary, var(--text-secondary));
  font-size: 0.9rem;
}
.todo-status-panel__form-wrap[data-v-b572876a] {
  margin-top: var(--space-3, 12px);
}
.todo-status-panel__form-wrap--top[data-v-b572876a] {
  margin-top: 0;
  margin-bottom: var(--space-3, 12px);
}
.page[data-v-c568aeee] {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex: 1 1 auto;
  min-height: 0;
}
.page__header h2[data-v-c568aeee] {
  margin: 0;
}
.page__desc[data-v-c568aeee] {
  margin: 0.5rem 0 0;
  color: var(--text-secondary);
}
.page__card[data-v-c568aeee] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.25rem;
}
@media (max-width: 768px) {
.page__desc[data-v-c568aeee] {
    font-size: 0.9rem;
    line-height: 1.5;
    margin-top: 0.25rem;
}
}
@media (max-width: 480px) {
.page__card[data-v-c568aeee] {
    padding: 0.5rem;
}
}
.todo-edit-page-root[data-v-c568aeee] {
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  gap: 0 !important;
  padding: 0;
  margin: 0;
}
.todo-edit-page-root > .page__header[data-v-c568aeee] {
  margin-top: 0;
}
.todo-edit-page-root .page__desc[data-v-c568aeee] {
  margin-top: 0;
}
.todo-edit-page-root .page__card[data-v-c568aeee] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0 !important;
  background: var(--surface-color);
  border: none;       /* 편집 화면에서는 카드 보더 제거 */
  border-radius: 0;   /* 편집 화면에서는 카드 모서리 라운드 제거 */
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.todo-edit-page[data-v-c568aeee] {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
  flex: 1 1 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  margin: 0;
  padding: 0;
  background: var(--surface-color);
}

/* 라이트 테마에서는 편집 화면 배경을 완전히 흰색으로 통일 */
:root[data-theme='light'] .todo-edit-page-root[data-v-c568aeee],
:root[data-theme='light'] .todo-edit-page-root .todo-edit-page[data-v-c568aeee] {
  background: var(--surface-color);
}
.todo-edit-page__loading[data-v-c568aeee] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 3rem;
  color: var(--text-secondary);
}
.todo-edit-page__loading i[data-v-c568aeee] {
  font-size: 2rem;
  color: var(--primary-color);
}
.todo-edit-page__content[data-v-c568aeee] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.todo-edit-page__header[data-v-c568aeee] {
  flex-shrink: 0;
}

/* 작업+활동 패널 컨테이너 */
.todo-edit-page__panels[data-v-c568aeee] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* 좌우 분할 모드 — 넓은 화면 */
.todo-edit-page__panels--split[data-v-c568aeee] {
  flex-direction: row;
  gap: 0;
  position: relative;
}

/* split 모드에서는 좌/우 모두 flex: 0 0 auto + 인라인 width 로 제어.
   flex-grow 가 있으면 인라인 width 가 무시되어 드래그 시 깜빡임 발생. */
.todo-edit-page__panels--split .todo-edit-page__work-type-wrapper[data-v-c568aeee] {
  flex: 0 0 auto;
  min-width: 0;
}
.todo-edit-page__panels--split .todo-edit-page__activity-tab[data-v-c568aeee] {
  flex: 0 0 auto;
  min-width: 0;
  position: relative;
}

/* 분리대는 공통 VerticalSplitter 컴포넌트에서 자체 scoped CSS 보유 */

/* 좌우 스왑: CSS order 만 반전 (DOM 구조 유지) */

/* 스왑 시 자식 패널/분리대 순서. VerticalSplitter 는 child 컴포넌트라 :deep() 사용. */
.todo-edit-page__panels--split.swapped .left-pane[data-v-c568aeee] { order: 3;
}
.todo-edit-page__panels--split.swapped[data-v-c568aeee] .vertical-split-resizer { order: 2;
}
.todo-edit-page__panels--split.swapped .right-pane[data-v-c568aeee] { order: 1;
}

/* 드래그 중 iframe 등 자식이 마우스 이벤트 가로채지 못하도록.
   z-index 규칙은 tokens.css 의 --z-resize-overlay 주석 참고. */
.todo-edit-page__resize-overlay[data-v-c568aeee] {
  position: absolute;
  inset: 0;
  z-index: var(--z-resize-overlay);
  cursor: col-resize;
}
.todo-edit-page__work-type-wrapper[data-v-c568aeee] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
}

/* 읽기 전용 모드 — 시각 뱃지만. 실제 입력 차단은 각 작업화면 컴포넌트가
   useTodoReadOnly() inject 를 통해 자체 readOnly prop 으로 처리. */
.todo-edit-page__work-type-wrapper--read-only[data-v-c568aeee]::after {
  content: attr(data-read-only-label);
  position: absolute;
  top: var(--space-2, 8px);
  right: var(--space-2, 8px);
  padding: 2px 8px;
  background: var(--color-warning);
  color: var(--color-white);
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: var(--radius-sm, 4px);
  z-index: var(--z-sticky, 1020);
  pointer-events: none;
}
.todo-edit-page__activity-tab[data-v-c568aeee] {
  flex: 1 1 0;
  min-height: 0;
  overflow: auto;
}
.todo-edit-page__no-work-type[data-v-c568aeee] {
  padding: 3rem;
  text-align: center;
  color: var(--text-secondary);
}
.todo-edit-page__header[data-v-c568aeee] {
  flex-shrink: 0;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--border-color);
  background: transparent;
}
.todo-timeline[data-v-c568aeee] {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--text-primary);
  justify-content: center;
}
.todo-timeline__status-controls[data-v-c568aeee] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-left: 0.5rem;
  flex-shrink: 0; /* 줄어들지 않도록 */
  white-space: nowrap; /* 텍스트 줄바꿈 방지 */
}
.todo-timeline__status-badge[data-v-c568aeee] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
  font-size: 0.8125rem;
  font-weight: normal;
  line-height: 1.5;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  flex-shrink: 0;
  white-space: nowrap;
  box-sizing: border-box;
  min-height: 1.625rem;
}
.todo-timeline__status-badge--pending[data-v-c568aeee] {
  background: var(--surface-lime-soft); /* 대기 연두색 */
  color: var(--text-primary);
  border: 1px solid var(--color-lime);
}
.todo-timeline__status-badge--in_progress[data-v-c568aeee] {
  background: var(--surface-info-soft); /* var(--color-info) - 진행 파란색 */
  color: var(--text-primary);
  border: 1px solid var(--color-info);
}
.todo-timeline__status-badge--review[data-v-c568aeee] {
  background: var(--surface-orange-soft); /* 검토 주황색 */
  color: var(--text-primary);
  border: 1px solid var(--color-orange);
}
.todo-timeline__status-badge--completed[data-v-c568aeee] {
  background: var(--surface-primary-soft); /* var(--surface-primary-soft) - 완료 초록색 */
  color: var(--text-primary);
  border: 1px solid var(--primary-color);
}
.todo-timeline__status-badge--cancelled[data-v-c568aeee] {
  background: var(--surface-danger-soft); /* 취소 빨간색 */
  color: var(--text-primary);
  border: 1px solid var(--color-danger);
}
.todo-timeline__item[data-v-c568aeee] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.todo-timeline__progress-group[data-v-c568aeee] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center; /* 줄바꿈 시 가운데 정렬 */
}
.todo-timeline__duration-group[data-v-c568aeee] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-wrap: wrap;
}
.todo-timeline__todo-id[data-v-c568aeee] {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-primary);
  margin-right: 0.75rem;
  white-space: nowrap;
}
.todo-timeline__item--progress[data-v-c568aeee] {
  display: flex;
  align-items: center;
  justify-content: center; /* 가운데 정렬 */
  gap: 0.5rem;
  margin-left: 0.75rem;
  flex-wrap: nowrap; /* 한 줄 유지 */
  flex-shrink: 1; /* 필요시 줄어들 수 있도록 */
  flex-grow: 0; /* 늘어나지 않도록 */
  white-space: nowrap; /* 텍스트 줄바꿈 방지 */
  min-width: 0; /* 최소 너비 제한 없음 */
}
.todo-timeline__label[data-v-c568aeee] {
  color: var(--text-secondary);
  font-weight: 500;
}
.todo-timeline__label--delayed[data-v-c568aeee] {
  color: var(--color-danger);
  font-weight: bold;
}
.todo-timeline__value[data-v-c568aeee] {
  color: var(--text-primary);
  white-space: nowrap;
}
.todo-timeline__value--delayed[data-v-c568aeee] {
  color: var(--color-danger);
  font-weight: bold;
}
.todo-timeline__separator[data-v-c568aeee] {
  color: var(--text-tertiary);
  margin: 0 0.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  line-height: 1;
}
.todo-timeline__separator i[data-v-c568aeee] {
  font-size: 1rem;
  opacity: 0.7;
}
.todo-timeline__divider[data-v-c568aeee] {
  color: var(--text-tertiary);
  margin: 0 0.5rem;
  font-weight: 600;
}
.todo-timeline__consumption[data-v-c568aeee] {
  font-size: 0.875rem;
  color: var(--text-secondary);
  white-space: nowrap;
}

/* todo-timeline__prev-button → AppButton danger sm */

/* todo-timeline__status-button → AppButton primary sm */
.todo-timeline__progress-slider-wrapper[data-v-c568aeee] {
  position: relative;
  width: 150px;
  flex-shrink: 0;
}
.todo-timeline__progress-slider[data-v-c568aeee] {
  width: 100%;
  height: 6px;
  border-radius: 3px;
  background: var(--border-color);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  position: relative;
  --thumb-color: var(--primary-color);
}
.todo-timeline__progress-slider[data-v-c568aeee]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--thumb-color, var(--primary-color));
  cursor: pointer;
  border: 2px solid var(--surface-color);
  box-shadow: var(--shadow-sm);
  transition: all 0.2s ease;
}
.todo-timeline__progress-slider[data-v-c568aeee]::-webkit-slider-thumb:hover {
  transform: scale(1.15);
  box-shadow: var(--shadow-md);
}
.todo-timeline__progress-slider[data-v-c568aeee]::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--thumb-color, var(--primary-color));
  cursor: pointer;
  border: 2px solid var(--surface-color);
  box-shadow: var(--shadow-sm);
  transition: all 0.2s ease;
}
.todo-timeline__progress-slider[data-v-c568aeee]::-moz-range-thumb:hover {
  transform: scale(1.15);
  box-shadow: var(--shadow-md);
}

/* 다크 테마에서 슬라이더 핸들 테두리가 배경과 구분되도록 더 밝은 색으로 오버라이드 */
:root[data-theme='dark'] .todo-timeline__progress-slider[data-v-c568aeee]::-webkit-slider-thumb {
  border-color: var(--text-secondary);
}
:root[data-theme='dark'] .todo-timeline__progress-slider[data-v-c568aeee]::-moz-range-thumb {
  border-color: var(--text-secondary);
}

/* 모바일 헤더 토글 */
.todo-header-toggle[data-v-c568aeee] {
  display: none;
}
@media (max-width: 768px) {
.todo-header-toggle[data-v-c568aeee] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    padding: 0.25rem 0;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}
.todo-header-toggle .todo-timeline__todo-id[data-v-c568aeee] {
    font-weight: 700;
    font-size: 0.875rem;
    color: var(--text-primary);
}
.todo-header-toggle__progress[data-v-c568aeee] {
    font-size: 0.8125rem;
    font-weight: 600;
}
.todo-header-toggle .fa-chevron-down[data-v-c568aeee],
  .todo-header-toggle .fa-chevron-up[data-v-c568aeee] {
    font-size: 0.625rem;
    color: var(--text-secondary);
    margin-left: auto;
    transition: transform 0.2s ease;
}
.todo-edit-page__header--collapsed[data-v-c568aeee] {
    padding: 0.5rem 1rem;
}
.todo-edit-page__header--collapsed .todo-timeline__todo-id[data-v-c568aeee] {
    /* 펼침 상태의 타임라인 안 #ID 숨기기 (토글에 이미 표시) */
}
.todo-edit-page__header[data-v-c568aeee] {
    padding: 0.75rem 1rem;
}
.todo-timeline[data-v-c568aeee] {
    font-size: 0.8125rem;
    gap: 0.375rem;
    margin-top: 0.375rem;
}
.todo-timeline__item--progress[data-v-c568aeee] {
    width: 100%;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--border-color);
    margin-left: 0;
    justify-content: center; /* 모바일에서도 가운데 정렬 유지 */
}
.todo-timeline__status-controls[data-v-c568aeee] {
    justify-content: center; /* 모바일에서 줄바꿈 시 가운데 정렬 */
    margin-left: 0; /* 모바일에서 왼쪽 마진 제거 */
    width: 100%; /* 모바일에서 전체 너비로 확장 */
}
.todo-timeline__status-badge[data-v-c568aeee] {
    font-size: 0.75rem;
    padding: 0.2rem 0.6rem;
}
.todo-timeline__progress-slider-wrapper[data-v-c568aeee] {
    width: 100px;
}
}

/* 상태 변경 팝업 스타일 */
.status-popup-overlay[data-v-c568aeee] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}
.status-popup[data-v-c568aeee] {
  width: 100%;
  max-width: 420px;
  margin: 0 1rem;
  background: var(--surface-color);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-modal);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
}
.status-popup__header[data-v-c568aeee] {
  padding: 1rem 1.25rem 0.5rem;
  border-bottom: 1px solid var(--border-subtle);
}
.status-popup__title[data-v-c568aeee] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.status-popup__body[data-v-c568aeee] {
  padding: 0.75rem 1.25rem 1rem;
}
.status-reason-group[data-v-c568aeee] {
  margin-top: 0.5rem;
}
.status-reason-label[data-v-c568aeee] {
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: 0.375rem;
}
.status-reason-input[data-v-c568aeee] {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  font-size: 0.8rem;
  font-family: inherit;
  transition: all 0.2s ease;
}
.status-reason-input[data-v-c568aeee]:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.status-reason-input[data-v-c568aeee]::placeholder {
  color: var(--text-tertiary);
}

/* 사유 빠른 선택 칩들 */
.status-reason-presets[data-v-c568aeee] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  margin-top: 0.5rem;
}
.status-reason-presets__chip[data-v-c568aeee] {
  appearance: none;
  background: transparent;
  border: 1px solid var(--border-color);
  color: var(--text-primary);
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  font-size: 0.8rem;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.status-reason-presets__chip[data-v-c568aeee]:hover {
  background: var(--primary-color);
  border-color: var(--primary-color);
  color: var(--color-white);
}
.status-popup__footer[data-v-c568aeee] {
  padding: 0.75rem 1.25rem 1rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  border-top: 1px solid var(--border-subtle);
}

/* status-popup__btn--cancel → AppButton secondary sm */

/* status-popup__btn--confirm → AppButton primary sm */

.list-refresh[data-v-26a9b473] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}
.list-refresh__icon[data-v-26a9b473] {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
}

/* 카운트다운 링 — 아이콘 둘레 */
.list-refresh__ring[data-v-26a9b473] {
  position: absolute;
  inset: -5px;
  width: 26px;
  height: 26px;
  transform: rotate(-90deg);
}
.list-refresh__ring-track[data-v-26a9b473] {
  fill: none;
  stroke: var(--border-color);
  stroke-width: 3;
}
.list-refresh__ring-fill[data-v-26a9b473] {
  fill: none;
  stroke: var(--primary-color);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 100.53;
  transition: stroke-dashoffset var(--transition-base) linear;
}

.list-screen[data-v-589f26c9] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  padding: var(--page-pad-x) var(--page-pad-x) 0;
  box-sizing: border-box;
  gap: var(--space-2);
}

/* 헤더 — 넓으면 한 줄, 좁으면 툴바가 줄바꿈해 우측 정렬 */
.list-screen__header[data-v-589f26c9] {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
}

/* 1차 분류 영역은 내용 폭을 유지(짓눌리지 않음). 툴바가 길면 헤더 flex-wrap 으로
   툴바가 다음 줄로 내려간다. */
.list-screen__lead[data-v-589f26c9] {
  flex: 0 0 auto;
  min-width: 0;
}
.list-screen__title[data-v-589f26c9] {
  margin: 0;
  font-size: var(--font-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  white-space: nowrap;
}
.list-screen__count[data-v-589f26c9] {
  font-size: var(--font-md);
  font-weight: var(--font-weight-regular);
  color: var(--text-tertiary);
}
.list-screen__toolbar[data-v-589f26c9] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  justify-content: flex-end;
  /* 분류 영역 오른쪽으로 밀착. 한 줄에 안 들어가면 헤더 flex-wrap 으로 다음 줄. */
  margin-left: auto;
}

/* 툴바 버튼은 공통 AppButton(variant=secondary, active) 사용 */

/* 필터 버튼 적용 개수 뱃지 (AppButton #icon 슬롯 안에 위치) */
.ls-toolbar__badge[data-v-589f26c9] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 var(--space-1);
  border-radius: var(--radius-full);
  background: var(--primary-color);
  color: white;
  font-size: var(--font-xs);
}
.list-screen__stats[data-v-589f26c9],
.list-screen__filters[data-v-589f26c9],
.list-screen__bulk[data-v-589f26c9] {
  flex-shrink: 0;
}
.list-screen__body[data-v-589f26c9] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

/* 좁은 화면: 툴바 버튼을 아이콘만으로 축약 (title 속성이 툴팁 역할).
   줄바꿈은 강제하지 않는다 — 헤더의 flex-wrap 이 공간이 부족할 때만 자연스럽게 내림.
   SortControl(.sort-control__field/__order)은 자체 모양을 가지므로 축약 대상에서 제외 —
   필드 선택 버튼은 현재 정렬 기준 라벨을 모바일에서도 보여줘야 한다. */
@media (max-width: 768px) {
.list-screen__toolbar[data-v-589f26c9] .app-btn:not(.sort-control__field):not(.sort-control__order) .app-btn__label {
    display: none;
}

  /* 뱃지 버튼(.ls-filter-btn--badged)은 아래 예외 규칙이 폭을 키우므로 제외 —
     :not() 인자도 특이도에 들어가 이 규칙을 빼지 않으면 예외 규칙을 이겨버린다. */
.list-screen__toolbar[data-v-589f26c9]
    .app-btn:not(.sort-control__field):not(.sort-control__order):not(.ls-filter-btn--badged) {
    padding: 0;
    width: var(--control-height-md);
}

  /* 상세 필터 적용 개수가 있으면 아이콘만으로 축약하지 않고
     뱃지까지 담도록 폭을 키운다 — 적용 상태가 한눈에 보이도록. */
.list-screen__toolbar[data-v-589f26c9] .app-btn.ls-filter-btn--badged {
    width: auto;
    padding: 0 var(--control-padding-x-md);
    gap: var(--space-1);
}
}

/* === scroll='page' — 통계 영역이 큰 화면: 전체를 한 흐름으로 스크롤 ===
   기본('body') 은 바디만 내부 스크롤하지만, 통계 패널이 커서 한 화면에 안 담기는
   화면은 통계+필터+바디를 함께 스크롤한다. 헤더(툴바)는 sticky 로 항상 보이게 둔다. */
.list-screen--scroll-page[data-v-589f26c9] {
  overflow-y: auto;
  padding-top: 0;
}

/* 헤더+필터 묶음 — 기본(scroll=body)은 box 를 만들지 않아 각자 flex 자식으로 동작 */
.list-screen__pinned[data-v-589f26c9] {
  display: contents;
}

/* scroll=page: 헤더+필터를 한 덩어리로 상단 고정 → 통계·바디만 스크롤 */
.list-screen--scroll-page .list-screen__pinned[data-v-589f26c9] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--surface-color);
  padding-top: var(--page-pad-x);
}

/* 바디는 남는 공간을 채우지 않고 자체 높이(ListBody clamp)를 그대로 쓴다. */
.list-screen--scroll-page .list-screen__body[data-v-589f26c9] {
  flex: 0 0 auto;
}

/* 좁은 화면: 제목과 툴바가 한 줄에 안 들어가면 툴바를 통째로 다음 줄로(우측 정렬). */
@media (max-width: 560px) {
.list-screen__lead[data-v-589f26c9] {
    flex-basis: 100%;
}
.list-screen__toolbar[data-v-589f26c9] {
    flex-basis: 100%;
}
}

.list-filter-panel[data-v-324b34a6] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-2) 0;
}

/* 상시 노출 한 줄 — 컨트롤이 폭을 채우지 않으면 가운데 정렬. 키워드창은 너비 100%. */
.list-filter-panel__lead[data-v-324b34a6] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
}

/* 상세 필터 영역 — 키워드창(있으면, 너비 100% 한 줄) + 필터 컨트롤 줄을 세로로 쌓음 */
.list-filter-panel__detail[data-v-324b34a6] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

/* 필터 컨트롤 묶음 — 초기화 버튼도 마지막 컨트롤 뒤에 같이 나열. */
.list-filter-panel__detail-fields[data-v-324b34a6] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.month-nav[data-v-f12eb0aa] {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-1);
}

/* 통계 패널 — 전체 상품 현황 차트 */
.count-stats__title[data-v-a0a4b90a] {
  margin: 0 0 var(--space-2);
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
}

/* 차트 카드 */
.chart-card[data-v-a0a4b90a] {
  background: transparent;
  border: none;
  padding: 0;
  position: relative;
}
.loading-overlay[data-v-a0a4b90a] {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface-color);
  opacity: 0.9;
  z-index: 10;
  border-radius: var(--radius-md);
}
.loading-overlay i[data-v-a0a4b90a] {
  font-size: 2rem;
  color: var(--primary-color);
}
.chart-content[data-v-a0a4b90a] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media (min-width: 768px) {
.chart-content[data-v-a0a4b90a] {
    flex-direction: row;
    align-items: stretch;
}
}
.chart-wrapper[data-v-a0a4b90a] {
  flex: 1;
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.chart-container[data-v-a0a4b90a] {
  width: 100%;
  height: 280px;
}

/* 통계 카드 */
.stats-wrapper[data-v-a0a4b90a] {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  justify-content: center;
}
.stats-grid[data-v-a0a4b90a] {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
}
.stat-card[data-v-a0a4b90a] {
  background: var(--background-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 0.5rem 0.75rem;
  transition: all 0.2s;
}
.stat-card[data-v-a0a4b90a]:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.stat-card--total[data-v-a0a4b90a] {
  background: var(--surface-color);
}
.stat-card--on-sale[data-v-a0a4b90a] {
  background: var(--surface-success-soft);
  border-left: 4px solid var(--color-success);
}
.stat-card--off-sale[data-v-a0a4b90a] {
  background: var(--surface-muted);
  border-left: 4px solid var(--text-tertiary);
}
.stat-label[data-v-a0a4b90a] {
  font-size: 0.875rem;
  color: var(--text-secondary);
  margin-bottom: 0.25rem;
}
.stat-value[data-v-a0a4b90a] {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--text-primary);
  text-align: right;
}
.stat-card--on-sale .stat-value[data-v-a0a4b90a] {
  color: var(--color-success);
}
.stat-card--off-sale .stat-value[data-v-a0a4b90a] {
  color: var(--text-tertiary);
}
.stat-sublabel[data-v-a0a4b90a] {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-top: 0.25rem;
  text-align: right;
}

/* 회사명 셀 */
.company-cell[data-v-a0a4b90a] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.company-favicon[data-v-a0a4b90a] {
  width: 20px;
  height: 20px;
  border-radius: var(--radius-sm);
  object-fit: contain;
}

/* 판매중/판매중지 값 색상 */
.value-on-sale[data-v-a0a4b90a] {
  color: var(--color-success);
  font-weight: 500;
}
.value-off-sale[data-v-a0a4b90a] {
  color: var(--text-tertiary);
  font-weight: 500;
}

/* 판매 비율 표시 */
.ratio-display[data-v-a0a4b90a] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
}
.ratio-text[data-v-a0a4b90a] {
  font-size: 0.75rem;
  min-width: 2rem;
}
.ratio-bar[data-v-a0a4b90a] {
  width: 4rem;
  height: 0.375rem;
  background: var(--background-color);
  border-radius: 9999px;
  overflow: hidden;
}
.ratio-fill[data-v-a0a4b90a] {
  height: 100%;
  background: var(--color-success);
  border-radius: 9999px;
  transition: width 0.3s;
}

/* ── 본문 목록 ──
   scroll='page' 모드라 ListBody 는 자체 높이를 가져야 한다(가상 스크롤 바운드).
   데스크톱은 충분히 보여주고, 모바일은 통계 아래로 자연 스크롤되는 흐름에 맞춰 좀 더 작게.
   ListBody 컴포넌트 루트(.list-body)에 내부 CSS로 flex:1 (= flex-basis:0%) 이 걸려 있어
   부모(.list-screen__body)가 flex:0 0 auto 인 scroll='page' 모드에서는 flex-basis:0% 가
   우선되어 explicit height 가 무시되고 0px 로 짜부러진다. → flex:0 0 auto 로 명시 override
   해야 height 가 실제로 적용됨. */
.count-list[data-v-a0a4b90a] {
  flex: 0 0 auto;
  height: clamp(360px, 65vh, 860px);
}

/* 반응형 — 좁은 화면에서 차트 축소 */
@media (max-width: 768px) {
.chart-wrapper[data-v-a0a4b90a],
  .chart-container[data-v-a0a4b90a] {
    min-height: 160px;
    height: 160px;
}
.stats-grid[data-v-a0a4b90a] {
    grid-template-columns: 1fr;
}
.stat-card[data-v-a0a4b90a] {
    padding: 0.5rem;
}
.stat-value[data-v-a0a4b90a] {
    font-size: 1.25rem;
}

  /* 모바일 본문 — 통계 아래로 스크롤될 때 너무 길면 가독성이 떨어진다.
     50vh 기준으로 한 화면 분량 + 추가 스크롤로 가상 스크롤 영역을 좁힌다. */
.count-list[data-v-a0a4b90a] {
    height: clamp(320px, 55vh, 560px);
}
}

.statistics-content[data-v-a2586246] {
  padding: 0.75rem;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;
}
.trend-header[data-v-a2586246] {
  width: 100%;
  margin-bottom: 0.5rem;
  flex-shrink: 0;
}

/* 필터 패널 */
.filter-panel[data-v-a2586246] {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem;
  background: transparent;
  padding: 0;
  border: none;
  box-shadow: none;
}
.filter-toggle-btn[data-v-a2586246] {
  display: none;
}
.filter-extras[data-v-a2586246] {
  display: contents;
}
.filter-item[data-v-a2586246] {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  min-width: 200px;
}
.filter-item[data-v-a2586246] .date-range-wrapper {
  flex: 1 1 auto !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
.border-height-fix[data-v-a2586246] .date-range-control,
.border-height-fix[data-v-a2586246] .multi-select-control {
  height: 32px !important;
  border-radius: 6px !important;
  box-sizing: border-box;
}
.border-height-fix[data-v-a2586246] .date-range-display,
.border-height-fix[data-v-a2586246] .date-range-value,
.border-height-fix[data-v-a2586246] .multi-select-placeholder,
.border-height-fix[data-v-a2586246] .multi-select-tag-text {
  font-size: 13px !important;
  font-weight: 500 !important;
}
.company-filter[data-v-a2586246] {
  min-width: 240px;
  max-width: 360px;
  flex: 1;
}
.filter-label[data-v-a2586246] {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-secondary);
  margin-left: 0.25rem;
}

/* 새로고침 버튼 */
/* 레이아웃 속성만 유지 — 시각 스타일은 AppButton 담당 */
.refresh-btn[data-v-a2586246] {
  margin-left: auto;
}

/* 차트 세션 */
.chart-section[data-v-a2586246] {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

/* 차트 카드 */
.chart-card[data-v-a2586246] {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  position: relative;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

/* 스크롤 영역 */
.charts-scroll-area[data-v-a2586246] {
  flex: 1;
  width: 100%;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

/* 그룹 */
.chart-group[data-v-a2586246] {
  flex-shrink: 0;
}
.chart-group-header[data-v-a2586246] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0 0.25rem;
  margin-bottom: 0.5rem;
}
.chart-group-title[data-v-a2586246] {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--text-primary);
}
.chart-group-count[data-v-a2586246] {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--text-tertiary);
  background: var(--background-color);
  border-radius: 10px;
  padding: 0.125rem 0.5rem;
}
.trend-chart-container[data-v-a2586246] {
  width: 100%;
  height: 320px;
}

/* 로딩 오버레이 */
.loading-overlay[data-v-a2586246] {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface-color);
  border-radius: 0;
  z-index: 10;
  opacity: 0.8;
}
.loading-overlay i[data-v-a2586246] {
  font-size: 2rem;
  color: var(--primary-color);
}

/* 빈 상태 */
.empty-state[data-v-a2586246] {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem;
  text-align: center;
}
.empty-icon-wrapper[data-v-a2586246] {
  width: 4rem;
  height: 4rem;
  background: var(--background-color);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
}
.empty-icon-wrapper i[data-v-a2586246] {
  font-size: 1.5rem;
  color: var(--text-tertiary);
  opacity: 0.5;
}
.empty-title[data-v-a2586246] {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-secondary);
  margin: 0;
}
.empty-desc[data-v-a2586246] {
  font-size: 0.875rem;
  color: var(--text-tertiary);
  margin-top: 0.5rem;
}
@media (max-width: 768px) {
.filter-panel[data-v-a2586246] {
    align-items: center;
}
.filter-item[data-v-a2586246] {
    min-width: 0;
    flex: 1;
}
.filter-toggle-btn[data-v-a2586246] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background: var(--surface-color);
    color: var(--text-secondary);
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
}
.filter-toggle-btn[data-v-a2586246]:active {
    background: var(--hover-bg);
}
.filter-badge[data-v-a2586246] {
    position: absolute;
    top: -4px;
    right: -4px;
    background: var(--primary-color);
    color: white;
    font-size: 0.625rem;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
}
.filter-extras[data-v-a2586246] {
    display: none;
    width: 100%;
    order: 10;
}
.filter-extras.show[data-v-a2586246] {
    display: block;
}
.company-filter[data-v-a2586246] {
    min-width: 100%;
}
.border-height-fix[data-v-a2586246] .date-range-display,
  .border-height-fix[data-v-a2586246] .date-range-value,
  .border-height-fix[data-v-a2586246] .multi-select-placeholder,
  .border-height-fix[data-v-a2586246] .multi-select-tag-text,
  .border-height-fix[data-v-a2586246] .multi-select-search-input {
    font-size: 16px !important;
}

  /* 모바일에서는 새로고침 라벨을 숨겨 아이콘만 — 버튼 크기는 AppButton 이 처리 */
.refresh-btn-text[data-v-a2586246] {
    display: none;
}
}

/* 통계 패널 — 예측 배지 + AI 인사이트 + 요약 카드 + 차트를 세로로 쌓는다 */
.monthly-stats[data-v-557324da] {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.forecast-badge-row[data-v-557324da] {
  width: 100%;
  display: flex;
  justify-content: center;
}
.forecast-badge[data-v-557324da] {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.75rem;
  background: var(--surface-warning-soft);
  border: 1px solid var(--surface-warning-soft);
  border-radius: 16px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-warning);
}

/* ── AI 인사이트 ── */
.insight-card[data-v-557324da] {
  background: var(--background-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1rem 1.25rem;
  border-left: 4px solid var(--color-indigo);
}
.insight-header[data-v-557324da] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 0.75rem;
}
.insight-header i[data-v-557324da] {
  color: var(--color-indigo);
}
.forecast-tag[data-v-557324da] {
  font-size: 0.75rem;
  padding: 0.125rem 0.5rem;
  background: var(--surface-warning-soft);
  color: var(--color-warning);
  border-radius: 10px;
}
.insight-skeleton[data-v-557324da] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.skeleton-line[data-v-557324da] {
  height: 14px;
  background: var(--border-color);
  border-radius: 4px;
  animation: pulse-557324da 1.5s ease-in-out infinite;
}
.skeleton-line.short[data-v-557324da] {
  width: 60%;
}
.skeleton-hint[data-v-557324da] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  margin-top: 0.25rem;
}
@keyframes pulse-557324da {
0%, 100% { opacity: 0.4;
}
50% { opacity: 0.8;
}
}
.insight-text[data-v-557324da] {
  font-size: 0.875rem;
  color: var(--text-secondary);
  line-height: 1.6;
}
.insight-text[data-v-557324da] p {
  margin: 0.25rem 0;
}
.insight-text[data-v-557324da] strong {
  color: var(--text-primary);
  font-weight: 600;
}
.ai-loading-hint[data-v-557324da] {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  color: var(--color-indigo);
  display: flex;
  align-items: center;
  gap: 0.375rem;
}
.fade-enter-active[data-v-557324da] { transition: opacity 0.5s ease;
}
.fade-enter-from[data-v-557324da] { opacity: 0;
}

/* ── 요약 카드 ── */
.summary-section[data-v-557324da] {
  display: flex;
  gap: 0.75rem;
  align-items: stretch;
}
.summary-cards[data-v-557324da] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
  flex: 1;
}
.summary-card[data-v-557324da] {
  background: var(--background-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 0.875rem 1rem;
  transition: all 0.2s;
}
.summary-card[data-v-557324da]:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}
.summary-label[data-v-557324da] {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-bottom: 0.375rem;
}
.summary-value[data-v-557324da] {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-primary);
}
.summary-sub[data-v-557324da] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  margin-top: 0.125rem;
}
.cards-3[data-v-557324da] {
  grid-template-columns: repeat(3, 1fr) !important;
}
.card-new[data-v-557324da] {
  border-left: 3px solid var(--primary-color);
}
.card-new .summary-value[data-v-557324da] {
  color: var(--primary-color);
}
.card-revised[data-v-557324da] {
  border-left: 3px solid var(--color-warning);
}
.card-revised .summary-value[data-v-557324da] {
  color: var(--color-warning);
}
.card-total[data-v-557324da] {
  border-color: var(--color-indigo);
  background: var(--surface-indigo-soft);
}
.card-total .summary-value[data-v-557324da] {
  color: var(--color-indigo);
  font-weight: 800;
}
.forecast-card[data-v-557324da] {
  border-color: var(--color-warning);
  background: var(--surface-warning-soft);
}
.forecast-card .summary-label i[data-v-557324da] {
  color: var(--color-warning);
}
.value-up[data-v-557324da] { color: var(--color-success) !important;
}
.value-down[data-v-557324da] { color: var(--color-danger) !important;
}
.trend-mini-wrapper[data-v-557324da] {
  min-width: 200px;
  max-width: 240px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 0.75rem;
  background: var(--surface-color);
}
.trend-mini-label[data-v-557324da] {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-bottom: 0.25rem;
  text-align: center;
}
.trend-mini-chart[data-v-557324da] {
  flex: 1;
  min-height: 90px;
}

/* ── 차트 ── */
.charts-section[data-v-557324da] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.chart-panel[data-v-557324da] {
  background: var(--background-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1rem;
}
.chart-title[data-v-557324da] {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 0.25rem 0;
}
.chart-subtitle[data-v-557324da] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  margin: 0 0 0.75rem 0;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.chart-click-hint[data-v-557324da] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--primary-color);
  opacity: 0.6;
  font-size: 0.6875rem;
}
.chart-container[data-v-557324da] {
  width: 100%;
}
.bar-chart[data-v-557324da] {
  height: 360px;
}
.donut-chart[data-v-557324da] {
  height: 360px;
}

/* ── 차트 필터 칩 ── */
.filter-chips[data-v-557324da] {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.chip[data-v-557324da] {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.75rem;
  background: var(--surface-indigo-soft);
  border: 1px solid var(--surface-indigo-soft);
  border-radius: 16px;
  font-size: 0.8125rem;
  color: var(--color-indigo);
}
.chip-close[data-v-557324da] {
  cursor: pointer;
  opacity: 0.7;
}
.chip-close[data-v-557324da]:hover {
  opacity: 1;
}

/* ── 목록 ── */
/* ListBody 는 가상 스크롤이라 바운드 높이가 필요 (scroll='page' 모드라 자체 높이를 가짐).
   ListBody 컴포넌트 루트(.list-body)에는 내부 CSS로 flex:1 (= flex-basis:0%) 이 걸려 있어
   부모(.list-screen__body)가 flex:0 0 auto(=content-sized) 인 scroll='page' 모드에서는
   flex-basis:0% 가 우선되어 explicit height 가 무시되고 0px 로 짜부러진다.
   → flex:0 0 auto 로 명시 override 해야 height 가 실제로 적용됨. */
.monthly-list[data-v-557324da] {
  flex: 0 0 auto;
  height: clamp(360px, 65vh, 860px);
}
.company-cell[data-v-557324da] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  white-space: nowrap;
}
.company-favicon[data-v-557324da] {
  width: 18px;
  height: 18px;
  border-radius: 3px;
  object-fit: contain;
}
.product-link[data-v-557324da] {
  color: var(--primary-color);
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
}
.product-link[data-v-557324da]:hover {
  text-decoration: underline;
}
.type-cell[data-v-557324da] {
  white-space: nowrap;
}
.badge[data-v-557324da] {
  display: inline-block;
  margin-left: 0.375rem;
  padding: 0.0625rem 0.375rem;
  border-radius: 8px;
  font-size: 0.6875rem;
  font-weight: 600;
  vertical-align: middle;
}
.badge-new[data-v-557324da] {
  background: var(--surface-primary-soft);
  color: var(--primary-color);
  border: 1px solid var(--surface-primary-soft);
}
.badge-revised[data-v-557324da] {
  background: var(--surface-warning-soft);
  color: var(--color-warning);
  border: 1px solid var(--surface-warning-soft);
}
.revision-cell[data-v-557324da] {
  white-space: nowrap;
}
.cycle-badge[data-v-557324da] {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-left: 0.25rem;
}
.doc-icons[data-v-557324da] {
  display: flex;
  gap: 0.25rem;
  justify-content: center;
}
.doc-badge[data-v-557324da] {
  cursor: pointer;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
  transition: opacity 0.15s;
  line-height: 1.2;
}
.doc-badge[data-v-557324da]:hover {
  opacity: 0.8;
}
.doc-badge--terms[data-v-557324da] {
  background: var(--surface-primary-soft);
  color: var(--primary-color);
}
.doc-badge--business[data-v-557324da] {
  background: var(--surface-orange-soft);
  color: var(--color-orange);
}
.doc-badge--summary[data-v-557324da] {
  background: var(--surface-success-soft);
  color: var(--color-success);
}

/* ── 반응형 ── */
@media (max-width: 1024px) {
.charts-section[data-v-557324da] {
    grid-template-columns: 1fr;
}
.summary-cards[data-v-557324da] {
    grid-template-columns: repeat(2, 1fr);
}
}

/* 모바일 — 통계 패널이 차지하는 세로 공간을 줄여서 하단 카드 목록이 화면에서 사라지지 않도록 한다.
   stats-default-open 을 모바일에서는 false 로 둬 첫 진입 시 본문이 바로 보이지만,
   사용자가 통계 토글을 켰을 때도 통계+본문이 한 번의 스크롤로 잡히도록 압축한다. */
@media (max-width: 768px) {
  /* 통계 패널 내부 간격 축소 */
.monthly-stats[data-v-557324da] {
    gap: 0.5rem;
}
.summary-section[data-v-557324da] {
    flex-direction: column;
    gap: 0.5rem;
}
.summary-cards[data-v-557324da] {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
}

  /* 요약 카드 자체도 컴팩트하게 */
.summary-card[data-v-557324da] {
    padding: 0.5rem 0.625rem;
}
.summary-value[data-v-557324da] {
    font-size: 1.125rem;
}
.trend-mini-wrapper[data-v-557324da] {
    max-width: none;
    padding: 0.5rem;
}
.trend-mini-chart[data-v-557324da] {
    min-height: 60px;
}

  /* 차트 높이 추가 축소 — 220px 였던 것을 180px 로 더 줄여 두 개 합쳐도 데스크톱(2열 360px) 수준 유지 */
.bar-chart[data-v-557324da],
  .donut-chart[data-v-557324da] {
    height: 180px;
}

  /* 차트 패널 패딩도 축소(좌우 여백 확보) */
.chart-panel[data-v-557324da] {
    padding: 0.625rem;
}
.chart-title[data-v-557324da] {
    font-size: 0.875rem;
    margin: 0 0 0.125rem 0;
}
.chart-subtitle[data-v-557324da] {
    font-size: 0.6875rem;
    margin: 0 0 0.5rem 0;
}
.charts-section[data-v-557324da] {
    gap: 0.5rem;
}
.insight-card[data-v-557324da] {
    padding: 0.625rem 0.75rem;
}
.insight-header[data-v-557324da] {
    margin-bottom: 0.5rem;
    font-size: 0.8125rem;
}
.insight-text[data-v-557324da] {
    font-size: 0.8125rem;
}

  /* 목록 영역 자체 높이 — 데스크톱은 clamp(360px, 65vh, 860px) 지만
     모바일은 stats-default-open=false 라 통계가 처음에는 접혀 있다.
     사용자가 통계를 펼치고 본문까지 한 흐름으로 스크롤할 때 본문 가상 스크롤 영역이
     너무 크면 답답하므로 55vh 기준으로 한다. */
.monthly-list[data-v-557324da] {
    height: clamp(320px, 55vh, 560px);
}
}

/* 초소형 화면 — 카드 1열로 더 압축 */
@media (max-width: 480px) {
.summary-cards[data-v-557324da] {
    grid-template-columns: 1fr;
}
.bar-chart[data-v-557324da],
  .donut-chart[data-v-557324da] {
    height: 160px;
}
}

/* Reuse shared styles for consistency */
.page[data-v-c88f21b0] {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex: 1 1 auto;
  min-height: 0;
}
.page__header h2[data-v-c88f21b0] {
  margin: 0;
}
.page__desc[data-v-c88f21b0] {
  margin: 0.5rem 0 0;
  color: var(--text-secondary);
}
.page__card[data-v-c88f21b0] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.25rem;
}
@media (max-width: 768px) {
.page__desc[data-v-c88f21b0] {
    font-size: 0.9rem;
    line-height: 1.5;
    margin-top: 0.25rem;
}
}
@media (max-width: 480px) {
.page__card[data-v-c88f21b0] {
    padding: 0.5rem;
}
}
.statistics-page-root[data-v-c88f21b0] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  gap: 0 !important;
}
.statistics-page[data-v-c88f21b0] {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
  flex: 1 1 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  padding: 0;
  background: transparent;
  border: none;
}
.statistics-page__tabs[data-v-c88f21b0] {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.statistics-page__tab-panels[data-v-c88f21b0] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: var(--surface-color);
  overflow: hidden;
  position: relative;
  padding: 0;
}
.statistics-page__tab-panel[data-v-c88f21b0] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: auto;
  position: relative;
}


.doc-picker-overlay[data-v-86f27cb9] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: blur(4px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.doc-picker-dialog[data-v-86f27cb9] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  box-shadow: var(--shadow-modal);
  width: 100%;
  max-width: 540px;
  height: 80vh;
  max-height: 600px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}
.doc-picker-header[data-v-86f27cb9] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem 0.75rem;
  border-bottom: 1px solid var(--border-subtle);
}
.doc-picker-title[data-v-86f27cb9] {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
}
.doc-picker-panel[data-v-86f27cb9] {
  flex: 1 1 0;
  min-height: 0;
  padding: 0.75rem 1rem 1rem;
}

/* ── 전체 레이아웃 ── */
.compare-result[data-v-4be44b3d] {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

/* ── 헤더 ── */
.compare-result__header[data-v-4be44b3d] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 1rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
  min-height: 48px;
}
.compare-result__title[data-v-4be44b3d] {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
}
.compare-result__header-right[data-v-4be44b3d] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
  flex-shrink: 1;
  flex-wrap: nowrap;
  justify-content: flex-end;
  min-width: 0;
}
.compare-result__stats[data-v-4be44b3d] {
  display: flex;
  gap: 0.35rem;
}
.compare-result__stat[data-v-4be44b3d] {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.125rem 0.5rem;
  border-radius: 10px;
  font-size: 0.75rem;
  font-weight: 600;
}
.compare-result__stat--changed[data-v-4be44b3d] { background: var(--surface-warning-soft); color: var(--color-warning-hover);
}
.compare-result__stat--added[data-v-4be44b3d]   { background: var(--surface-success-soft); color: var(--color-success-hover);
}
.compare-result__stat--removed[data-v-4be44b3d] { background: var(--surface-danger-soft);  color: var(--color-danger-hover);
}
.compare-result__stat--equal[data-v-4be44b3d]   { background: var(--surface-success-soft); color: var(--color-success-hover);
}

/* 다른 부분만 / 모두 보기 */
.compare-result__toggle-style-row[data-v-4be44b3d] {
  display: contents;
}

/* 컨트롤 묶음(토글 + PDF토글 + 재파싱) — 폰에서 줄바꿈 시 묶음 단위로 우측 정렬 */
.compare-result__controls-group[data-v-4be44b3d] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.compare-result__toggle-group[data-v-4be44b3d] {
  display: inline-flex;
  height: var(--control-height-sm);
  /* 부모 border 제거 — 각 버튼이 자기 border 를 가지고 1px 겹쳐서 공유 */
}
.compare-result__toggle-btn[data-v-4be44b3d] {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0 0.65rem;
  border: 1px solid var(--border-color);
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.78rem;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
  position: relative;
  box-sizing: border-box;
}

/* 두번째 버튼은 좌측 1px 만큼 겹쳐 — 디바이더가 두께 1px 이 되고 양쪽 폭 동일 */
.compare-result__toggle-btn + .compare-result__toggle-btn[data-v-4be44b3d] {
  margin-left: -1px;
}
.compare-result__toggle-btn[data-v-4be44b3d]:first-child {
  border-radius: 6px 0 0 6px;
}
.compare-result__toggle-btn[data-v-4be44b3d]:last-child {
  border-radius: 0 6px 6px 0;
}
.compare-result__toggle-btn--active[data-v-4be44b3d] {
  background: var(--primary-color);
  color: var(--color-white);
  /* 활성 버튼의 border 가 비활성 위로 올라와 윤곽이 보이도록 */
  z-index: 1;
  /* --border-color 가 다크모드에서 너무 어두워 녹색 vs 페이지 bg 사이에 묻힘 → 더 contrast 있는 색 사용 */
  border-color: var(--text-tertiary);
}

/* 불일치 순회 네비게이션 */
.compare-result__diff-nav[data-v-4be44b3d] {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  height: var(--control-height-sm);
  border: 1px solid var(--border-color);
  border-radius: 6px;
  padding: 0 0.25rem;
  box-sizing: border-box;
}
.compare-result__diff-nav-btn[data-v-4be44b3d] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.7rem;
  cursor: pointer;
  transition: all 0.15s ease;
}
.compare-result__diff-nav-btn[data-v-4be44b3d]:hover:not(:disabled) {
  background: var(--bg-hover);
  color: var(--text-primary);
}
.compare-result__diff-nav-btn[data-v-4be44b3d]:disabled {
  opacity: 0.3;
  cursor: default;
}
.compare-result__diff-nav-pos[data-v-4be44b3d] {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text-secondary);
  min-width: 3.5em;
  text-align: center;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.compare-result__sync-label[data-v-4be44b3d] {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.78rem;
  color: var(--text-secondary);
  cursor: pointer;
  white-space: nowrap;
}

/* PDF 토글 스위치 */
.compare-result__pdf-toggle[data-v-4be44b3d] {
  display: inline-flex;
  align-items: center;
  height: var(--control-height-sm);
  gap: 0.4rem;
  cursor: pointer;
  white-space: nowrap;
}
.compare-result__pdf-toggle-input[data-v-4be44b3d] {
  display: none;
}
.compare-result__style-track[data-v-4be44b3d] {
  position: relative;
  width: 56px;
  height: 20px;
  border-radius: 10px;
  background: var(--border-color);
  transition: background 0.2s;
  flex-shrink: 0;
  overflow: hidden;
}
.compare-result__style-label[data-v-4be44b3d] {
  position: absolute;
  top: 0;
  height: 100%;
  display: flex;
  align-items: center;
  font-size: 0.625rem;
  font-weight: 600;
  pointer-events: none;
  transition: opacity 0.2s;
}
.compare-result__style-label--off[data-v-4be44b3d] {
  left: 22px;
  color: var(--text-secondary);
  opacity: 1;
}
.compare-result__style-label--on[data-v-4be44b3d] {
  left: 5px;
  color: var(--color-white);
  opacity: 0;
}
.compare-result__style-thumb[data-v-4be44b3d] {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--color-white);
  box-shadow: var(--shadow-sm);
  transition: left 0.2s;
}
.compare-result__pdf-toggle-input:checked + .compare-result__style-track[data-v-4be44b3d] {
  background: var(--primary-color);
}
.compare-result__pdf-toggle-input:checked + .compare-result__style-track .compare-result__style-thumb[data-v-4be44b3d] {
  left: 38px;
}
.compare-result__pdf-toggle-input:checked + .compare-result__style-track .compare-result__style-label--off[data-v-4be44b3d] {
  opacity: 0;
}
.compare-result__pdf-toggle-input:checked + .compare-result__style-track .compare-result__style-label--on[data-v-4be44b3d] {
  opacity: 1;
}

/* PDF 표시/숨김 — 화면 구조를 직관적으로 보여주는 아이콘 토글
   showPdf=true: view_week(3컬럼: PDF|diff|PDF)  /  false: crop_square(단일) */
.compare-result__doc-label[data-v-4be44b3d] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  background: var(--primary-color);
  color: var(--color-white);
  font-size: 0.7rem;
  font-weight: 700;
  flex-shrink: 0;
}
.compare-result__title-favicon[data-v-4be44b3d] {
  width: 14px;
  height: 14px;
  border-radius: 2px;
  object-fit: contain;
  vertical-align: middle;
  margin-right: 0.25rem;
}

/* ── 문서 미선택 상태 ── */
.compare-result__empty-state[data-v-4be44b3d] {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  padding: 2rem;
}
.compare-result__doc-slots[data-v-4be44b3d] {
  display: flex;
  gap: 1.5rem;
  width: 100%;
  max-width: 680px;
}
.compare-result__doc-slot[data-v-4be44b3d] {
  flex: 1;
  min-height: 90px;
  border: 2px dashed var(--border-color);
  border-radius: 10px;
  padding: 1rem;
  cursor: pointer;
  transition: all 0.15s ease;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.compare-result__doc-slot[data-v-4be44b3d]:hover {
  border-color: var(--primary-color);
  background: var(--bg-hover);
}
.compare-result__doc-slot--filled[data-v-4be44b3d] {
  border-style: solid;
  border-color: var(--primary-color);
  background: var(--surface-primary-soft);
}
.compare-result__slot-placeholder[data-v-4be44b3d] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-secondary);
  font-size: 0.875rem;
}
.compare-result__slot-info[data-v-4be44b3d] {
  flex: 1;
  min-width: 0;
}
.compare-result__slot-name[data-v-4be44b3d] {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.compare-result__slot-meta[data-v-4be44b3d] {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-top: 0.15rem;
}
.compare-result__slot-change[data-v-4be44b3d] {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.8rem;
  transition: all 0.15s ease;
}
.compare-result__slot-change[data-v-4be44b3d]:hover {
  background: var(--bg-hover);
  color: var(--primary-color);
}
.compare-result__start-btn[data-v-4be44b3d] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.5rem;
  background: var(--primary-color);
  color: var(--color-white);
  border: none;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s ease;
}
.compare-result__start-btn[data-v-4be44b3d]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.compare-result__start-btn[data-v-4be44b3d]:not(:disabled):hover {
  opacity: 0.9;
}

/* ── 상태 메시지 ── */
.compare-result__status[data-v-4be44b3d] {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 3rem;
  color: var(--text-secondary);
  font-size: 0.9rem;
}
.compare-result__status i[data-v-4be44b3d] { font-size: 1.5rem; opacity: 0.6;
}
.compare-result__status--error[data-v-4be44b3d] { color: var(--color-danger);
}


/* ── 추출 진행 UI ── */
.compare-result__extracting[data-v-4be44b3d] {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  padding: 3rem 2rem;
}
.compare-result__extracting-title[data-v-4be44b3d] {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
}
.compare-result__extract-items[data-v-4be44b3d] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  max-width: 480px;
}
.compare-result__extract-item[data-v-4be44b3d] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 0.75rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.compare-result__extract-item-header[data-v-4be44b3d] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
}
.compare-result__extract-item-name[data-v-4be44b3d] {
  flex: 1;
  font-weight: 500;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.compare-result__extract-status[data-v-4be44b3d] { font-size: 0.8rem; flex-shrink: 0;
}
.compare-result__extract-status--done[data-v-4be44b3d]    { color: var(--success-color);
}
.compare-result__extract-status--failed[data-v-4be44b3d]  { color: var(--color-danger);
}
.compare-result__extract-status--skipped[data-v-4be44b3d] { color: var(--text-secondary);
}
.compare-result__extract-status--extracting[data-v-4be44b3d] { color: var(--primary-color);
}
.compare-result__extract-status--pending[data-v-4be44b3d] { color: var(--text-secondary);
}
.compare-result__extract-bar-wrap[data-v-4be44b3d] {
  height: 6px;
  background: var(--bg-hover);
  border-radius: 3px;
  overflow: hidden;
}
.compare-result__extract-bar[data-v-4be44b3d] {
  height: 100%;
  background: var(--primary-color);
  border-radius: 3px;
  transition: width 0.3s ease;
}
.compare-result__extract-bar--done[data-v-4be44b3d] { background: var(--success-color);
}
.compare-result__extract-message[data-v-4be44b3d] {
  font-size: 0.78rem;
  color: var(--color-danger);
}

/* ── 3열 본문 ── */
.compare-result__body-wrap[data-v-4be44b3d] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* 통합 타이틀 바 */
.compare-result__title-bar[data-v-4be44b3d] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 36px;
  padding: 0 0.75rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
}
.compare-result__title-doc[data-v-4be44b3d] {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.compare-result__title-doc--right[data-v-4be44b3d] {
  justify-content: flex-end;
}
.compare-result__title-info[data-v-4be44b3d] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.2rem 0.5rem;
}
.compare-result__title-info--right[data-v-4be44b3d] {
  justify-content: flex-end;
  align-content: flex-end;
  text-align: right;
}
.compare-result__title-meta--right[data-v-4be44b3d] {
  justify-content: flex-end;
}
.compare-result__title-meta[data-v-4be44b3d] {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
  flex-wrap: nowrap;
}
.compare-result__title-badge[data-v-4be44b3d] {
  flex-shrink: 0;
  font-size: 0.6rem;
  padding: 0.05rem 0.35rem;
  border-radius: 3px;
  background: var(--surface-primary-soft);
  color: var(--primary-color);
  border: 1px solid var(--surface-primary-soft);
  white-space: nowrap;
}
.compare-result__title-docid[data-v-4be44b3d] {
  font-size: 0.65rem;
  color: var(--text-tertiary);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.compare-result__title-date[data-v-4be44b3d] {
  font-size: 0.65rem;
  color: var(--text-tertiary);
  white-space: nowrap;
  opacity: 0.85;
}
.compare-result__title-name[data-v-4be44b3d] {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-primary);
}
.compare-result__title-doc--right .compare-result__title-name[data-v-4be44b3d] {
  text-align: right;
}
.compare-result__title-center[data-v-4be44b3d] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.compare-result__title-sep[data-v-4be44b3d] {
  flex-shrink: 0;
  font-size: 0.85rem;
  color: var(--text-secondary);
  opacity: 0.5;
  padding: 0 0.25rem;
}
.compare-result__body[data-v-4be44b3d] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  overflow: hidden;
}

/* ── PDF 패널 ── */
.compare-result__pdf-pane[data-v-4be44b3d] {
  flex: 0 0 30%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--border-color);
  overflow: hidden;
}
.compare-result__pdf-pane[data-v-4be44b3d]:last-child {
  border-right: none;
  border-left: 1px solid var(--border-color);
}
.compare-result__pdf-pane-header[data-v-4be44b3d] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.6rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
  font-size: 0.8rem;
  min-height: 34px;
}
.compare-result__pdf-pane-name[data-v-4be44b3d] {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--text-primary);
  font-weight: 500;
}
.compare-result__pdf-pane-change[data-v-4be44b3d] {
  flex-shrink: 0;
}
.compare-result__pdf-iframe[data-v-4be44b3d] {
  flex: 1 1 0;
  width: 100%;
  border: none;
  display: block;
}

/* ── Diff 패널 ── */
.compare-result__diff-pane[data-v-4be44b3d] {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ── 필터 검색 바 ── */
.compare-result__filter[data-v-4be44b3d] {
  flex-shrink: 0;
  padding: 0.125rem 0.25rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
  display: flex;
  align-items: center;
  box-sizing: border-box;
}
.compare-result__filter-bar[data-v-4be44b3d] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex: 1;
  min-width: 0;
}

/* 검색 입력창은 공통 AppSearchInput find-mode — 카운터·네비 버튼 내장, 폭을 채운다. */
.compare-result__filter-bar[data-v-4be44b3d] .app-search {
  flex: 1;
  min-width: 0;
}

/* 키워드 인라인 하이라이트 */
.compare-result__highlight[data-v-4be44b3d] {
  background: var(--surface-warning-soft);
  color: inherit;
  border-radius: 2px;
  padding: 0 1px;
}

/* 검색 매칭 행 배경 */
.compare-result__diff-row--filter-match[data-v-4be44b3d] {
  background: var(--surface-warning-soft);
}
.compare-result__diff-row--filter-match[data-v-4be44b3d]:hover {
  background: var(--surface-warning-soft);
}

/* 현재 검색 매칭 행 — 주황색 강조 */
.compare-result__diff-row--filter-current[data-v-4be44b3d] {
  background: var(--surface-orange-soft);
}
.compare-result__diff-row--filter-current[data-v-4be44b3d]:hover {
  background: var(--surface-orange-soft);
}
.compare-result__diff-col-headers[data-v-4be44b3d] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.75rem;
  border-bottom: 2px solid var(--border-color);
  background: var(--surface-color);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-secondary);
  min-height: 32px;
  overflow: hidden;
}
.compare-result__diff-col-name[data-v-4be44b3d] {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}
.compare-result__diff-col-sep[data-v-4be44b3d] {
  flex-shrink: 0;
  color: var(--text-tertiary, var(--text-secondary));
  opacity: 0.6;
  font-size: 0.8rem;
}
.compare-result__doc-label-sm[data-v-4be44b3d] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 3px;
  background: var(--primary-color);
  color: var(--color-white);
  font-size: 0.65rem;
  font-weight: 700;
  flex-shrink: 0;
}
.compare-result__diff-content[data-v-4be44b3d] {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  overflow: hidden;
}
.compare-result__diff-list[data-v-4be44b3d] {
  flex: 1 1 0;
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  outline: none;
}

/* ── 디프 미니맵 ── */
.compare-result__minimap[data-v-4be44b3d] {
  flex: 0 0 10px;
  position: relative;
  background: var(--surface-color);
  border-right: 1px solid var(--border-color);
  cursor: pointer;
}
.compare-result__minimap-mark[data-v-4be44b3d] {
  position: absolute;
  left: 1px;
  right: 1px;
  min-height: 2px;
  cursor: pointer;
  z-index: 1;
}
.compare-result__minimap-mark--changed[data-v-4be44b3d] {
  background: var(--color-warning);
}
.compare-result__minimap-mark--added[data-v-4be44b3d] {
  background: var(--color-success);
}
.compare-result__minimap-mark--removed[data-v-4be44b3d] {
  background: var(--color-danger);
}

/* 뷰포트 박스: 실제 보이는 범위를 정확히 표시 (부풀리지 않음) */
.compare-result__minimap-viewport[data-v-4be44b3d] {
  position: absolute;
  left: 0;
  right: 0;
  background: var(--surface-info-soft);
  border-top: 1px solid var(--color-info-hover);
  border-bottom: 1px solid var(--color-info-hover);
  pointer-events: none;
  z-index: 2;
}
.compare-result__diff-empty[data-v-4be44b3d] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 3rem;
  color: var(--success-color);
  font-size: 0.9rem;
}
.compare-result__equal-group[data-v-4be44b3d] {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.75rem;
  background: var(--surface-color);
  border-bottom: 1px solid var(--border-color);
  font-size: 0.75rem;
  color: var(--text-tertiary, var(--text-secondary));
  cursor: pointer;
  user-select: none;
  transition: background 0.1s ease;
}
.compare-result__equal-group[data-v-4be44b3d]:hover { background: var(--bg-hover);
}
.compare-result__diff-row[data-v-4be44b3d] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 26px;
  cursor: default;
  border-bottom: 1px solid var(--border-color);
}
.compare-result__diff-row--has-pos[data-v-4be44b3d] { cursor: pointer;
}
.compare-result__diff-row--has-pos[data-v-4be44b3d]:hover { filter: brightness(0.96);
}
.compare-result__diff-row--selected[data-v-4be44b3d] {
  outline: 2px solid var(--primary-color);
  outline-offset: -2px;
  z-index: 1;
}

/* equal / resegmented: 단일 컬럼, 흐리게 */
.compare-result__diff-row--equal[data-v-4be44b3d] {
  grid-template-columns: 1fr;
  opacity: 0.45;
}
.compare-result__diff-row--equal[data-v-4be44b3d]:hover {
  opacity: 0.75;
}
.compare-result__diff-cell--merged[data-v-4be44b3d] {
  padding: 0.15rem 0.5rem;
}
.compare-result__reseg-badge[data-v-4be44b3d] {
  display: inline-flex;
  align-items: center;
  margin-left: 0.4rem;
  padding: 0.05rem 0.35rem;
  font-size: 0.6rem;
  border-radius: 3px;
  background: var(--surface-indigo-soft);
  color: var(--color-indigo);
  border: 1px solid var(--surface-indigo-soft);
  white-space: nowrap;
  vertical-align: middle;
  cursor: help;
}

/* changed */
.compare-result__diff-row--changed[data-v-4be44b3d] {
  background: var(--surface-warning-soft);
}
.compare-result__diff-row--changed .compare-result__diff-cell--a[data-v-4be44b3d] {
  border-left: 3px solid var(--color-danger);
  background: var(--surface-danger-soft);
}
.compare-result__diff-row--changed .compare-result__diff-cell--b[data-v-4be44b3d] {
  border-left: 3px solid var(--color-success);
  background: var(--surface-success-soft);
}

/* added */
.compare-result__diff-row--added .compare-result__diff-cell--a[data-v-4be44b3d] {
  background: var(--surface-success-soft);
}
.compare-result__diff-row--added .compare-result__diff-cell--b[data-v-4be44b3d] {
  border-left: 3px solid var(--color-success);
  background: var(--surface-success-soft);
}

/* removed */
.compare-result__diff-row--removed .compare-result__diff-cell--a[data-v-4be44b3d] {
  border-left: 3px solid var(--color-danger);
  background: var(--surface-danger-soft);
}
.compare-result__diff-row--removed .compare-result__diff-cell--b[data-v-4be44b3d] {
  background: var(--surface-danger-soft);
}

/* 인라인 diff */
.idiff-del[data-v-4be44b3d] {
  background: var(--surface-danger-soft);
  color: var(--color-danger);
  text-decoration: line-through;
  border-radius: 2px;
  padding: 0 1px;
}
.idiff-ins[data-v-4be44b3d] {
  background: var(--surface-success-soft);
  color: var(--color-success);
  border-radius: 2px;
  padding: 0 1px;
}
.compare-result__diff-cell[data-v-4be44b3d] {
  padding: 0.3rem 0.5rem;
  min-height: 26px;
  display: flex;
  align-items: flex-start;
  word-break: break-word;
}
.compare-result__diff-cell--a[data-v-4be44b3d] { border-right: 1px solid var(--border-color);
}
.compare-result__diff-text[data-v-4be44b3d] {
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--text-primary);
  white-space: pre-wrap;
}
.compare-result__diff-text--heading[data-v-4be44b3d] {
  font-weight: 700;
}
.compare-result__diff-text--table[data-v-4be44b3d] {
  font-family: monospace;
  font-size: 0.75rem;
}

/* 가로 정렬 — 셀이 flex 라 span 에 display:block + width:100% 보장 */
.compare-result__diff-text--align-center[data-v-4be44b3d] {
  display: block;
  width: 100%;
  text-align: center;
}
.compare-result__diff-text--align-right[data-v-4be44b3d] {
  display: block;
  width: 100%;
  text-align: right;
}
@media (max-width: 1024px) {
.compare-result__pdf-pane[data-v-4be44b3d] { display: none;
}
.compare-result__diff-text[data-v-4be44b3d] { font-size: 0.85rem;
}
.compare-result__title-bar[data-v-4be44b3d] { padding: 0.25rem 0.5rem; gap: 0.25rem;
}
.compare-result__title-name[data-v-4be44b3d] { font-size: 0.75rem;
}
.compare-result__header[data-v-4be44b3d] { gap: 0.5rem; padding: 0.375rem 0.75rem;
}
.compare-result__header-right[data-v-4be44b3d] { gap: 0.375rem;
}
.compare-result__toggle-btn[data-v-4be44b3d] { padding: 0 0.5rem; font-size: 0;
}
.compare-result__toggle-btn i[data-v-4be44b3d] { font-size: 0.75rem;
}
  /* PDF 패널 숨김 시 PDF 표시 토글(아이콘)도 숨김 (스타일 토글은 유지) */
.compare-result__pdf-icon-toggle[data-v-4be44b3d] { display: none;
}
.compare-result__pdf-toggle[data-v-4be44b3d] { display: none;
}
.compare-result__style-toggle[data-v-4be44b3d] { display: inline-flex;
}
}

/* ── 모바일 (≤640px) ── */
@media (max-width: 640px) {
.compare-result__pdf-pane[data-v-4be44b3d] { display: none;
}

  /* 헤더: 세로 스택 */
.compare-result__header[data-v-4be44b3d] {
    flex-direction: column;
    align-items: stretch;
    padding: 0.375rem 0.5rem;
    gap: 0.375rem;
    min-height: auto;
}
.compare-result__title[data-v-4be44b3d] {
    font-size: 0.85rem;
}
.compare-result__header-right[data-v-4be44b3d] {
    margin-left: 0;
    flex-shrink: 1;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
    justify-content: flex-start;
    row-gap: 0.35rem;
}
  /* 컨트롤 묶음(토글/PDF/재파싱)은 항상 우측 정렬:
     - 한 줄이면 stats/diff-nav 우측에 붙음
     - 줄바꿈되면 두 번째 줄에서 우측 끝으로 정렬 (자체 justify-content: flex-end) */
.compare-result__controls-group[data-v-4be44b3d] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: auto;
    flex-wrap: wrap;
    justify-content: flex-end;
}

  /* 통계 뱃지 더 작게 */
.compare-result__stat[data-v-4be44b3d] {
    padding: 0.1rem 0.35rem;
    font-size: 0.7rem;
}

  /* 토글 버튼: 아이콘만 표시 */
.compare-result__toggle-btn[data-v-4be44b3d] {
    padding: 0 0.5rem;
    font-size: 0;
}
.compare-result__toggle-btn i[data-v-4be44b3d] {
    font-size: 0.75rem;
}

  /* 라디오버튼 + 스타일 토글을 한 줄에 배치 */
.compare-result__toggle-style-row[data-v-4be44b3d] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: nowrap;
}

  /* PDF 표시 토글 숨김 (PDF 패널 없으므로 불필요, 스타일 토글은 유지) */
.compare-result__pdf-icon-toggle[data-v-4be44b3d] { display: none;
}
.compare-result__pdf-toggle[data-v-4be44b3d] { display: none;
}
.compare-result__style-toggle[data-v-4be44b3d] { display: inline-flex;
}

  /* 불일치 네비게이션 더 작게 */
.compare-result__diff-nav[data-v-4be44b3d] {
    height: 26px;
}
.compare-result__diff-nav-pos[data-v-4be44b3d] {
    font-size: 0.68rem;
    min-width: 2.5em;
}

  /* 타이틀 바: 3열 → 세로 스택 */
.compare-result__title-bar[data-v-4be44b3d] {
    flex-direction: column;
    align-items: stretch;
    padding: 0.5rem 0.5rem;
    gap: 0.25rem;
    min-height: auto;
}
.compare-result__title-doc[data-v-4be44b3d] {
    justify-content: flex-start;
}
.compare-result__title-info[data-v-4be44b3d] {
    flex-direction: column;
    align-items: flex-start;
}
.compare-result__title-name[data-v-4be44b3d] {
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.compare-result__title-doc--right[data-v-4be44b3d] {
    justify-content: flex-end;
    border-top: 1px solid var(--border-color);
    padding-top: 0.25rem;
}
.compare-result__title-info--right[data-v-4be44b3d] {
    justify-content: flex-end;
    text-align: right;
    align-items: flex-end;
}
.compare-result__title-doc--right .compare-result__title-name[data-v-4be44b3d] {
    text-align: right;
}
.compare-result__title-meta--right[data-v-4be44b3d] {
    justify-content: flex-end;
}
.compare-result__title-doc[data-v-4be44b3d] { order: 1;
}
.compare-result__title-doc--right[data-v-4be44b3d] { order: 2;
}
.compare-result__title-center[data-v-4be44b3d] {
    order: 3;
    align-self: center;
    gap: 0.35rem;
}
.compare-result__title-meta[data-v-4be44b3d] {
    flex-wrap: wrap;
}

  /* 검색바 더 작게 */
.compare-result__filter-bar[data-v-4be44b3d] {
    font-size: 0.78rem;
}

  /* 미니맵 모바일 대응: 좁게 표시 */
.compare-result__minimap[data-v-4be44b3d] {
    flex: 0 0 8px;
}

  /* 디프 텍스트 */
.compare-result__diff-text[data-v-4be44b3d] {
    font-size: 0.8rem;
}

  /* 추출 다이얼로그: 모바일 적응 */
.compare-extract-dialog[data-v-4be44b3d] {
    min-width: auto;
    max-width: calc(100vw - 2rem);
    margin: 0 1rem;
    padding: 1rem 1.25rem;
}
}

/* ── 추출 진행 다이얼로그 ── */
.compare-extract-dialog__overlay[data-v-4be44b3d] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
.compare-extract-dialog[data-v-4be44b3d] {
  background: var(--surface-color);
  border-radius: 8px;
  padding: 1.5rem 2rem;
  min-width: 380px;
  max-width: 480px;
  box-shadow: var(--shadow-lg);
}
.compare-extract-dialog__title[data-v-4be44b3d] {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.compare-extract-dialog__items[data-v-4be44b3d] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.compare-extract-dialog__item-header[data-v-4be44b3d] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.375rem;
}
.compare-extract-dialog__item-info[data-v-4be44b3d] {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.375rem;
}
.compare-extract-dialog__item-product[data-v-4be44b3d] {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.compare-extract-dialog__item-doctype[data-v-4be44b3d] {
  font-size: 0.6875rem;
  font-weight: 500;
  color: var(--text-secondary);
  background: var(--surface-color-secondary);
  border-radius: 3px;
  padding: 0.0625rem 0.375rem;
  white-space: nowrap;
  flex-shrink: 0;
}
.compare-extract-dialog__status[data-v-4be44b3d] {
  flex-shrink: 0;
  font-size: 0.8125rem;
}
.compare-extract-dialog__status--done[data-v-4be44b3d],
.compare-extract-dialog__status--skipped[data-v-4be44b3d] {
  color: var(--success-color);
}
.compare-extract-dialog__status--failed[data-v-4be44b3d] {
  color: var(--color-danger);
}
.compare-extract-dialog__status--pending[data-v-4be44b3d],
.compare-extract-dialog__status--extracting[data-v-4be44b3d] {
  color: var(--primary-color);
}
.compare-extract-dialog__bar-wrap[data-v-4be44b3d] {
  height: 3px;
  background: var(--border-color);
  border-radius: 2px;
  overflow: hidden;
}
.compare-extract-dialog__bar[data-v-4be44b3d] {
  height: 100%;
  background: var(--primary-color);
  border-radius: 2px;
  transition: width 0.3s ease;
}
.compare-extract-dialog__bar--done[data-v-4be44b3d] {
  background: var(--success-color);
}
.compare-extract-dialog__actions[data-v-4be44b3d] {
  margin-top: 1.25rem;
  display: flex;
  justify-content: flex-end;
}


.compare-page-root[data-v-01929500] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.ai-chat-page[data-v-ea3c061b] {
  flex: 1;
  width: 100%;
  height: 100%;
  padding: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 0;
  position: relative;
}
.ai-chat-container[data-v-ea3c061b] {
  flex: 1;
  height: 100%;
  background: var(--surface-color);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-height: 100%;
  position: relative;
}

/* ChatWindow 내부 스타일 오버라이드 */
[data-v-ea3c061b] .chat-window {
  border-left: none;
  /* flex: 1 to ensure it fills the container including proper shrinking */
  flex: 1;
  height: 100%;
  min-height: 0;
}

/* 삭제 작업: 평소 테마 기본색(상속) / 호버 시 위험색.
   <i> 색을 직접 지정하므로 상속(=AppButton hover 색)을 명시도 다툼 없이 이긴다. */
.app-action--danger:hover i[data-v-58233261] {
  color: var(--color-danger);
}

.dm-compose-overlay[data-v-5ffe92a6] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}
.dm-compose[data-v-5ffe92a6] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  width: 90%;
  max-width: 560px;
  max-height: 85vh;
  margin: 0 1rem;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-modal);
}
.dm-compose__header[data-v-5ffe92a6] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border-color);
}
.dm-compose__header h3[data-v-5ffe92a6] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}

/* dm-compose__close → AppButton icon-only ghost xs */
.dm-compose__body[data-v-5ffe92a6] {
  padding: 1rem 1.25rem;
  overflow-y: auto;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.dm-compose__field[data-v-5ffe92a6] {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.dm-compose__field--grow[data-v-5ffe92a6] {
  flex: 1;
}
.dm-compose__label[data-v-5ffe92a6] {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-secondary);
}
.dm-compose__input[data-v-5ffe92a6] {
  font-size: 0.875rem;
}
.dm-compose__editor-wrapper[data-v-5ffe92a6] {
  border: 1px solid var(--border-color);
  border-radius: 6px;
  overflow: hidden;
}
.dm-compose__toolbar[data-v-5ffe92a6] {
  display: flex;
  gap: 2px;
  padding: 0.375rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-muted);
}
.dm-compose__toolbar button[data-v-5ffe92a6] {
  background: transparent;
  border: none;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.75rem;
}
.dm-compose__toolbar button[data-v-5ffe92a6]:hover {
  background: var(--bg-hover);
  color: var(--text-primary);
}
.dm-compose__toolbar button.active[data-v-5ffe92a6] {
  background: var(--primary-color);
  color: var(--color-white);
}
.dm-compose__editor[data-v-5ffe92a6] {
  min-height: 120px;
  max-height: 300px;
  overflow-y: auto;
  padding: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--text-primary);
}
.dm-compose__editor[data-v-5ffe92a6] .tiptap {
  outline: none;
  min-height: 100px;
}
.dm-compose__editor[data-v-5ffe92a6] .tiptap p.is-editor-empty:first-child::before {
  content: attr(data-placeholder);
  color: var(--text-tertiary);
  pointer-events: none;
  float: left;
  height: 0;
}
.dm-compose__options[data-v-5ffe92a6] {
  display: flex;
  gap: 1rem;
  padding: 0.5rem 0;
}
.dm-compose__option[data-v-5ffe92a6] {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  color: var(--text-secondary);
  cursor: pointer;
  user-select: none;
}
.dm-compose__option i[data-v-5ffe92a6] {
  font-size: 0.75rem;
}
.dm-compose__recipients[data-v-5ffe92a6] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  align-items: center;
}
.dm-compose__recipient-chip[data-v-5ffe92a6] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.5rem;
  background: var(--surface-muted);
  border: 1px solid var(--border-color);
  border-radius: 999px;
  font-size: 0.75rem;
  color: var(--text-primary);
}
.dm-compose__chip-avatar[data-v-5ffe92a6] {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
}
.dm-compose__chip-icon[data-v-5ffe92a6] {
  font-size: 0.625rem;
  color: var(--text-tertiary);
  width: 18px;
  text-align: center;
}

/* dm-compose__chip-remove → AppButton icon-only ghost xs */
.dm-compose__chip-remove[data-v-5ffe92a6] {
  margin-left: 0.125rem;
}
.dm-compose__add-btn[data-v-5ffe92a6] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.5rem;
  background: transparent;
  border: 1px dashed var(--border-color);
  border-radius: 999px;
  font-size: 0.75rem;
  color: var(--text-tertiary);
  cursor: pointer;
  transition: all 0.15s;
}
.dm-compose__add-btn[data-v-5ffe92a6]:hover {
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.dm-compose__schedule[data-v-5ffe92a6] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.dm-compose__schedule-check[data-v-5ffe92a6] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  color: var(--text-secondary);
  cursor: pointer;
}
.dm-compose__datetime[data-v-5ffe92a6] {
  padding: 0.375rem 0.5rem;
  border: 1px solid var(--border-color);
  border-radius: 0.375rem;
  background: var(--surface-color);
  color: var(--text-primary);
  font-size: 0.8125rem;
  font-family: inherit;
}
.dm-compose__footer[data-v-5ffe92a6] {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.75rem 1.25rem;
  border-top: 1px solid var(--border-color);
}

/* dm-compose__cancel-btn → AppButton secondary */
/* dm-compose__send-btn → AppButton primary + loading */

/* 수신자 선택 팝업 */
.dm-picker-overlay[data-v-5ffe92a6] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2100;
}
.dm-picker[data-v-5ffe92a6] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  width: 90%;
  max-width: 400px;
  max-height: 70vh;
  margin: 0 1rem;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-modal);
}
.dm-picker__header[data-v-5ffe92a6] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-color);
}
.dm-picker__header h4[data-v-5ffe92a6] {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
}

/* dm-picker__close → AppButton icon-only ghost xs */
.dm-picker__tabs[data-v-5ffe92a6] {
  display: flex;
  border-bottom: 1px solid var(--border-color);
}
.dm-picker__tab[data-v-5ffe92a6] {
  flex: 1;
  padding: 0.5rem;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  font-size: 0.8125rem;
  color: var(--text-secondary);
  cursor: pointer;
}
.dm-picker__tab--active[data-v-5ffe92a6] {
  color: var(--primary-color);
  border-bottom-color: var(--primary-color);
}
.dm-picker__content[data-v-5ffe92a6] {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.dm-picker__search[data-v-5ffe92a6] {
  margin: 0.5rem;
  font-size: 0.8125rem;
}
.dm-picker__list[data-v-5ffe92a6] {
  flex: 1;
  overflow-y: auto;
  max-height: 300px;
}
.dm-picker__item[data-v-5ffe92a6] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  cursor: pointer;
  transition: background 0.15s;
}
.dm-picker__item[data-v-5ffe92a6]:hover {
  background: var(--surface-muted);
}
.dm-picker__item--selected[data-v-5ffe92a6] {
  background: color-mix(in srgb, var(--primary-color) 8%, var(--surface-color));
}
.dm-picker__avatar[data-v-5ffe92a6] {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dm-picker__avatar--image[data-v-5ffe92a6] {
  background-size: cover;
  background-position: center;
}
.dm-picker__avatar--icon[data-v-5ffe92a6] {
  background: var(--surface-muted);
  color: var(--text-tertiary);
  font-size: 0.625rem;
}
.dm-picker__role-icon[data-v-5ffe92a6] {
  color: var(--text-tertiary);
  font-size: 0.875rem;
  width: 24px;
  text-align: center;
}
.dm-picker__name[data-v-5ffe92a6] {
  flex: 1;
  font-size: 0.8125rem;
  color: var(--text-primary);
}
.dm-picker__check[data-v-5ffe92a6] {
  color: var(--primary-color);
  font-size: 0.75rem;
}
.dm-picker__empty[data-v-5ffe92a6] {
  padding: 1.5rem;
  text-align: center;
  font-size: 0.8125rem;
  color: var(--text-tertiary);
}
.dm-picker__footer[data-v-5ffe92a6] {
  display: flex;
  justify-content: flex-end;
  padding: 0.5rem 0.75rem;
  border-top: 1px solid var(--border-color);
}

/* dm-picker__done-btn → AppButton primary sm */

/* 모바일(iOS Safari) contenteditable 자동 확대 방지 */
/* TipTap은 contenteditable로 렌더되어 전역 input/textarea 16px 규칙이 적용되지 않음 */
@media screen and (max-width: 768px) {
.dm-compose__editor[data-v-5ffe92a6],
  .dm-compose__editor[data-v-5ffe92a6] .tiptap {
    font-size: max(16px, 1em);
}
}

/* ─── 메시지 카드 ─── */
.dm-card[data-v-ab95f3b9] {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
  width: 100%;
}
.dm-card--unread .dm-card__subject[data-v-ab95f3b9],
.dm-card--unread .dm-card__name[data-v-ab95f3b9] {
  font-weight: var(--font-weight-semibold);
}
.dm-card__avatar[data-v-ab95f3b9] {
  flex-shrink: 0;
}
.dm-avatar[data-v-ab95f3b9] {
  width: 28px;
  height: 28px;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.dm-avatar--image[data-v-ab95f3b9] {
  background-size: cover;
  background-position: center;
}
.dm-avatar--initials[data-v-ab95f3b9] {
  background: var(--surface-muted);
  color: var(--text-primary);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
}
.dm-avatar--group[data-v-ab95f3b9] {
  background: var(--surface-muted);
  color: var(--text-tertiary);
  font-size: var(--font-xs);
}
.dm-avatar--role[data-v-ab95f3b9] {
  background: var(--surface-active);
  color: var(--primary-color);
  font-size: var(--font-xs);
}
.dm-card__body[data-v-ab95f3b9] {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: var(--space-1);
  overflow: hidden;
}
.dm-card__name[data-v-ab95f3b9] {
  font-size: var(--font-sm);
  color: var(--text-primary);
  white-space: nowrap;
  flex-shrink: 0;
}
.dm-card__more[data-v-ab95f3b9] {
  color: var(--text-tertiary);
  font-size: var(--font-xs);
}
.dm-card__sep[data-v-ab95f3b9] {
  color: var(--text-tertiary);
  font-size: var(--font-xs);
  flex-shrink: 0;
}
.dm-card__subject[data-v-ab95f3b9] {
  font-size: var(--font-sm);
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dm-card__dot[data-v-ab95f3b9] {
  width: 6px;
  height: 6px;
  border-radius: var(--radius-full);
  background: var(--primary-color);
  flex-shrink: 0;
}
.dm-badge[data-v-ab95f3b9] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  flex-shrink: 0;
}
.dm-badge--urgent[data-v-ab95f3b9] {
  padding: 1px var(--space-2);
  background: var(--color-warning-bg, var(--surface-warning-soft));
  color: var(--color-warning);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
  border-radius: var(--radius-full);
  line-height: 1.4;
}
.dm-badge--reply[data-v-ab95f3b9] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.dm-card__read-status[data-v-ab95f3b9] {
  flex-shrink: 0;
  font-size: var(--font-xs);
}
.dm-card__read-all[data-v-ab95f3b9] {
  color: var(--color-success);
}
.dm-card__read-count[data-v-ab95f3b9] {
  color: var(--text-tertiary);
}
.dm-card__meta[data-v-ab95f3b9] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  flex-shrink: 0;
}
.dm-card__actions[data-v-ab95f3b9] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}
.dm-card__time[data-v-ab95f3b9] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  white-space: nowrap;
}

/* ─── 상세 모달 ─── */
.dm-detail__title[data-v-ab95f3b9] {
  margin: 0;
  font-size: var(--font-base);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
}
.dm-detail__urgent-icon[data-v-ab95f3b9] {
  color: var(--color-warning);
  margin-left: var(--space-2);
}
.dm-detail__meta[data-v-ab95f3b9] {
  padding: var(--space-3) var(--space-4);
  font-size: var(--font-sm);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  border-bottom: 1px solid var(--border-color);
}
.dm-detail__row[data-v-ab95f3b9] {
  display: flex;
  gap: var(--space-2);
}
.dm-detail__label[data-v-ab95f3b9] {
  font-weight: var(--font-weight-medium);
  color: var(--text-tertiary);
  min-width: 4rem;
  flex-shrink: 0;
}
.dm-detail__value[data-v-ab95f3b9] {
  color: var(--text-primary);
}
.dm-detail__recipient[data-v-ab95f3b9] {
  color: var(--text-secondary);
}
.dm-detail__recipient--read[data-v-ab95f3b9] {
  color: var(--text-primary);
}
.dm-detail__read-icon[data-v-ab95f3b9] {
  font-size: var(--font-xs);
  color: var(--color-success);
  margin-left: 2px;
}
.dm-detail__scroll[data-v-ab95f3b9] {
  max-height: 50vh;
  overflow-y: auto;
}
.dm-detail__body[data-v-ab95f3b9] {
  padding: var(--space-4);
  font-size: var(--font-md);
  line-height: 1.7;
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--text-primary);
}

/* 타임라인 */
.dm-timeline[data-v-ab95f3b9] {
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--border-color);
  display: flex;
  flex-direction: column;
}
.dm-timeline__item[data-v-ab95f3b9] {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-1) 0;
  position: relative;
}
.dm-timeline__item[data-v-ab95f3b9]:not(:last-child)::before {
  content: '';
  position: absolute;
  left: 10px;
  top: 26px;
  bottom: -2px;
  width: 1px;
  background: var(--border-color);
}
.dm-timeline__avatar-wrap[data-v-ab95f3b9] {
  position: relative;
  flex-shrink: 0;
  z-index: 1;
}
.dm-timeline__avatar[data-v-ab95f3b9] {
  width: 22px;
  height: 22px;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
}
.dm-timeline__avatar--image[data-v-ab95f3b9] {
  background-size: cover;
  background-position: center;
}
.dm-timeline__avatar--initials[data-v-ab95f3b9] {
  background: var(--surface-muted);
  color: var(--text-primary);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
}
.dm-timeline__sent-badge[data-v-ab95f3b9] {
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 10px;
  height: 10px;
  border-radius: var(--radius-full);
  background: var(--primary-color);
  color: var(--color-white);
  font-size: 0.3125rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dm-timeline__check[data-v-ab95f3b9] {
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 10px;
  height: 10px;
  border-radius: var(--radius-full);
  background: var(--color-success);
  color: var(--color-white);
  font-size: 0.375rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dm-timeline__content[data-v-ab95f3b9] {
  display: flex;
  flex-direction: column;
  gap: 0.0625rem;
  padding-top: 0.125rem;
}
.dm-timeline__text[data-v-ab95f3b9] {
  font-size: var(--font-sm);
  color: var(--text-primary);
  font-weight: var(--font-weight-medium);
}
.dm-timeline__time[data-v-ab95f3b9] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.dm-timeline__pending[data-v-ab95f3b9] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  font-style: italic;
}

/* 회신 스레드 */
.dm-replies[data-v-ab95f3b9] {
  border-top: 1px solid var(--border-color);
}
.dm-replies__header[data-v-ab95f3b9] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-2) var(--space-4);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--text-secondary);
  background: var(--surface-muted);
}
.dm-replies__item[data-v-ab95f3b9] {
  display: flex;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border-top: 1px solid var(--border-color);
}
.dm-replies__avatar[data-v-ab95f3b9] {
  flex-shrink: 0;
  padding-top: 0.125rem;
}
.dm-replies__content[data-v-ab95f3b9] {
  flex: 1;
  min-width: 0;
}
.dm-replies__meta[data-v-ab95f3b9] {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  margin-bottom: var(--space-1);
}
.dm-replies__sender[data-v-ab95f3b9] {
  font-size: var(--font-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
}
.dm-replies__time[data-v-ab95f3b9] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.dm-replies__body[data-v-ab95f3b9] {
  font-size: var(--font-sm);
  line-height: 1.6;
  color: var(--text-primary);
}
.dm-replies__body[data-v-ab95f3b9] p {
  margin: 0;
}
.dm-detail__reply-btn[data-v-ab95f3b9] {
  margin-right: auto;
}

.cropper-overlay[data-v-def4e6a0] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
.cropper-container[data-v-def4e6a0] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 1.5rem;
  width: 90%;
  max-width: 360px;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  box-shadow: var(--shadow-modal);
}
.cropper-header[data-v-def4e6a0] {
  text-align: center;
}
.cropper-header h3[data-v-def4e6a0] {
  margin: 0 0 0.5rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-primary);
}
.cropper-header p[data-v-def4e6a0] {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-tertiary);
}
.image-wrapper[data-v-def4e6a0] {
  position: relative;
  width: 300px;
  height: 300px;
  margin: 0 auto;
  border-radius: 8px;
  overflow: hidden;
  background-color: var(--surface-color-secondary);
  cursor: move;
}
canvas[data-v-def4e6a0] {
  display: block;
}
.controls[data-v-def4e6a0] {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.controls .icon[data-v-def4e6a0] {
  color: var(--text-secondary);
}
.zoom-slider[data-v-def4e6a0] {
  flex: 1;
  cursor: pointer;
}
.bg-controls[data-v-def4e6a0] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0.5rem;
}
.bg-controls .label[data-v-def4e6a0] {
  font-size: 0.875rem;
  color: var(--text-secondary);
}
.bg-buttons[data-v-def4e6a0] {
  display: flex;
  gap: 0.75rem;
}
.bg-btn[data-v-def4e6a0] {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 2px solid var(--border-color);
  cursor: pointer;
  padding: 0;
  transition: transform 0.2s, border-color 0.2s;
}
.bg-btn.active[data-v-def4e6a0] {
  border-color: var(--primary-color);
  transform: scale(1.2);
}

/* tokens-ignore-start: 색상 피커 스와치 — 사용자가 직접 고르는 배경색 자체값 */
.bg-white[data-v-def4e6a0] { background: #ffffff;
}
.bg-black[data-v-def4e6a0] { background: #000000;
}
.bg-transparent[data-v-def4e6a0] {
  background-image:
    linear-gradient(45deg, #ccc 25%, transparent 25%),
    linear-gradient(-45deg, #ccc 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #ccc 75%),
    linear-gradient(-45deg, transparent 75%, #ccc 75%);
  background-size: 8px 8px;
  background-color: #fff;
}
/* tokens-ignore-end */
.actions[data-v-def4e6a0] {
  display: flex;
  gap: 0.75rem;
}

.camera-overlay[data-v-e9978d98] {
  position: fixed;
  inset: 0;
  background: black;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
.camera-container[data-v-e9978d98] {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.video-wrapper[data-v-e9978d98] {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
}
.camera-video[data-v-e9978d98] {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mirrored[data-v-e9978d98] {
  transform: scaleX(-1);
}
.camera-controls[data-v-e9978d98] {
  padding: 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--backdrop-bg);
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

/* 카메라 오버레이(검정 배경)에서 아이콘 버튼 색 보정 */
.camera-icon-btn.app-btn[data-v-e9978d98] {
  color: var(--color-white);
  background: var(--surface-active);
  border-radius: 50%;
  width: 48px;
  height: 48px;
}
.camera-icon-btn.app-btn[data-v-e9978d98]:hover {
  background: var(--surface-hover);
  color: var(--color-white);
}
.btn-capture[data-v-e9978d98] {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 4px solid var(--color-white);
  padding: 4px;
}
.capture-inner[data-v-e9978d98] {
  width: 100%;
  height: 100%;
  background: var(--color-white);
  border-radius: 50%;
  transition: transform 0.1s;
}
.btn-capture:active .capture-inner[data-v-e9978d98] {
  transform: scale(0.9);
}

.selector-overlay[data-v-6fd48fec] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  backdrop-filter: blur(4px);
}
.selector-container[data-v-6fd48fec] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 1.5rem;
  width: 90%;
  max-width: 400px;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  box-shadow: var(--shadow-md);
}
.selector-header[data-v-6fd48fec] {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.selector-header h3[data-v-6fd48fec] {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-primary);
}
.avatar-grid[data-v-6fd48fec] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
  gap: 1rem;
}
.avatar-item[data-v-6fd48fec] {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 2px solid transparent;
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  background: none;
  transition: transform 0.2s, border-color 0.2s;
}
.avatar-item[data-v-6fd48fec]:hover {
  transform: scale(1.1);
  border-color: var(--primary-color);
}
.avatar-item img[data-v-6fd48fec] {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.filter-input-wrapper[data-v-8da57e03] {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 180px;
}
.filter-input-icon[data-v-8da57e03] {
  position: absolute;
  left: 0.625rem;
  color: var(--text-tertiary);
  font-size: 0.75rem;
  pointer-events: none;
}
.filter-input-field[data-v-8da57e03] {
  width: 100%;
  padding: 0.25rem 1.75rem 0.25rem 2rem;
  font-size: 0.8125rem;
  height: 32px;
  box-sizing: border-box;
}
.filter-input-clear[data-v-8da57e03] {
  position: absolute;
  right: 0.375rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: none;
  background: transparent;
  color: var(--text-tertiary);
  cursor: pointer;
  font-size: 0.6875rem;
  padding: 0;
  border-radius: 2px;
  transition: all 0.15s;
}
.filter-input-clear[data-v-8da57e03]:hover {
  color: var(--text-primary);
  background: var(--hover-color);
}

.user-picker__option-avatar[data-v-e1fd0b0b],
.user-picker__tag-avatar[data-v-e1fd0b0b] {
  display: inline-flex;
}

/* 범위 뱃지 — 의미색 토큰 + color-mix 로 옅은 배경 틴트 (raw 값 미사용) */
.scope-badge[data-v-7b508d94] {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  border-radius: var(--radius-sm);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  background: color-mix(in srgb, var(--primary-color) 15%, transparent);
  color: var(--primary-color);
}
.scope-badge--global[data-v-7b508d94] {
  background: color-mix(in srgb, var(--success-color) 15%, transparent);
  color: var(--success-color);
}
.scope-badge--industry[data-v-7b508d94],
.scope-badge--company_industry[data-v-7b508d94] {
  background: color-mix(in srgb, var(--color-warning) 15%, transparent);
  color: var(--color-warning);
}
.scope-badge--company_type[data-v-7b508d94] {
  background: color-mix(in srgb, var(--color-danger) 15%, transparent);
  color: var(--color-danger);
}
.scope-badge--company[data-v-7b508d94],
.scope-badge--product[data-v-7b508d94],
.scope-badge--document[data-v-7b508d94] {
  background: color-mix(in srgb, var(--color-info) 15%, transparent);
  color: var(--color-info);
}
.scope-target[data-v-7b508d94] {
  margin-left: 0.375rem;
  font-size: var(--font-sm);
  color: var(--text-secondary);
}

/* 문서유형 배지 */
.doc-type-badge[data-v-7b508d94] {
  display: inline-block;
  padding: 0.0625rem 0.375rem;
  border-radius: var(--radius-sm);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  background: var(--surface-muted);
  color: var(--text-secondary);
  margin-right: 0.125rem;
}
.doc-type-badge--all[data-v-7b508d94] {
  background: color-mix(in srgb, var(--success-color) 15%, transparent);
  color: var(--success-color);
}

/* 토글 스위치 */
.toggle-switch[data-v-7b508d94] {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 20px;
  cursor: pointer;
}
.toggle-switch input[data-v-7b508d94] {
  opacity: 0;
  width: 0;
  height: 0;
}
.toggle-slider[data-v-7b508d94] {
  position: absolute;
  inset: 0;
  background: var(--text-tertiary);
  border-radius: var(--radius-full);
  transition: background var(--transition-fast);
}
.toggle-slider[data-v-7b508d94]::before {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  left: 2px;
  bottom: 2px;
  background: var(--surface-color);
  border-radius: var(--radius-full);
  transition: transform var(--transition-fast);
}
.toggle-switch input:checked + .toggle-slider[data-v-7b508d94] {
  background: var(--primary-color);
}
.toggle-switch input:checked + .toggle-slider[data-v-7b508d94]::before {
  transform: translateX(16px);
}

/* 시스템/공개 규칙은 토글 잠금 시각화 */
.toggle-switch--readonly[data-v-7b508d94] {
  cursor: not-allowed;
}
.toggle-switch--readonly .toggle-slider[data-v-7b508d94] {
  opacity: 0.6;
}

/* 혼합 상태: 슬라이더 배경을 경고색으로, 손잡이 가운데 정렬 */
.toggle-switch--mixed .toggle-slider[data-v-7b508d94] { background: var(--color-warning);
}
.toggle-switch--mixed .toggle-slider[data-v-7b508d94]::before { transform: translateX(8px);
}

/* 일괄 토글 위젯 (일괄 액션 바 내부) */
.bulk-toggle[data-v-7b508d94] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  height: var(--control-height-md);
  padding: 0 var(--space-3);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--surface-color);
  font-size: var(--font-sm);
  font-weight: var(--font-weight-medium);
  color: var(--text-primary);
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.bulk-toggle.is-disabled[data-v-7b508d94] {
  opacity: 0.5;
  cursor: not-allowed;
}

/* 일괄 체크박스 */
.bulk-checkbox[data-v-7b508d94] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: var(--primary-color);
}

/* 액션 버튼 */
.action-btns[data-v-7b508d94] {
  display: flex;
  gap: var(--space-1);
  justify-content: center;
}

/* 테이블 행 상세 — 규칙 설명 (ListBody #row-detail 슬롯 안) */
.rule-desc[data-v-7b508d94] {
  display: block;
  font-size: var(--font-sm);
  color: var(--text-tertiary);
  line-height: 1.4;
}

/* 공통 텍스트 유틸 */
.text-muted[data-v-7b508d94] { color: var(--text-tertiary);
}
.text-sm[data-v-7b508d94] { font-size: var(--font-sm);
}
.text-xs[data-v-7b508d94] { font-size: var(--font-xs);
}

/* ── 카드형 본문 ── */
.rule-card[data-v-7b508d94] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  width: 100%;
  min-width: 0;
}
.rule-card__title[data-v-7b508d94] {
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
}
.rule-card__badges[data-v-7b508d94] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
}
.rule-card__desc[data-v-7b508d94] {
  font-size: var(--font-sm);
  color: var(--text-tertiary);
  line-height: 1.4;
}
.rule-card__footer[data-v-7b508d94] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2) var(--space-3);
  margin-top: var(--space-1);
}
.rule-card__toggles[data-v-7b508d94] {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.card-toggle-label[data-v-7b508d94] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}
.card-toggle-label--locked[data-v-7b508d94] {
  cursor: not-allowed;
}
.card-toggle-text[data-v-7b508d94] {
  font-size: var(--font-xs);
  color: var(--text-secondary);
}
.rule-card__meta[data-v-7b508d94] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-left: auto;
}
.rule-card__actions[data-v-7b508d94] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.system-settings[data-v-05c3a347] {
  /* 상단 여백은 검색 바(.settings-search)가 담당 → root 는 좌·우·하만.
     검색 바가 sticky 라 root 에 padding-top 을 주면 좌우보다 커 보임. */
  padding: 0 var(--page-pad-x) 1.5rem;
  max-width: 1400px;
  margin: 0 auto;
}

/* 검색 바 — 첫 요소이므로 상단 여백(--page-pad-x)을 직접 가져 좌우와 일치 */
.settings-search[data-v-05c3a347] {
  position: sticky;
  top: 0;
  z-index: 5;
  padding: var(--page-pad-x) 0 0.75rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--surface-color);
}
.settings-search__wrapper[data-v-05c3a347] {
  position: relative;
  display: flex;
  align-items: center;
}
.settings-search__icon[data-v-05c3a347] {
  position: absolute;
  left: 0.75rem;
  color: var(--text-tertiary);
  font-size: 0.8125rem;
  pointer-events: none;
}
.settings-search__input[data-v-05c3a347] {
  width: 100%;
  /* 외형은 AppInput 토큰이 담당 — 레이아웃만 유지 */
  padding-left: 2.25rem;
  padding-right: 2rem;
}
.settings-search__clear[data-v-05c3a347] {
  position: absolute;
  right: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--text-tertiary);
  cursor: pointer;
  font-size: 0.75rem;
  padding: 0;
  border-radius: 3px;
  transition: all 0.15s;
}
.settings-search__clear[data-v-05c3a347]:hover {
  color: var(--text-primary);
  background: var(--hover-color);
}

/* 레이아웃 */
.settings-layout[data-v-05c3a347] {
  display: flex;
}

/* 사이드바 */
.settings-sidebar[data-v-05c3a347] {
  position: sticky;
  align-self: flex-start;
  z-index: 4;
  width: 200px;
  flex-shrink: 0;
  border-right: 1px solid var(--border-color);
  overflow-y: auto;
  padding: 0.5rem 0;
  background: var(--surface-color);
  max-height: var(--05c3a347-sidebarMaxHeight);
}
.category-btn[data-v-05c3a347] {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: transparent;
  border: none;
  color: var(--text-secondary);
  font-size: 0.8125rem;
  cursor: pointer;
  text-align: left;
  border-left: 2px solid transparent;
  transition: all 0.15s;
}
.category-btn[data-v-05c3a347]:hover {
  background: var(--hover-color);
  color: var(--text-primary);
}
.category-btn--active[data-v-05c3a347] {
  color: var(--primary-color);
  border-left-color: var(--primary-color);
  background: var(--hover-color);
  font-weight: 600;
}
.category-btn i[data-v-05c3a347] {
  width: 16px;
  text-align: center;
  font-size: 0.75rem;
  flex-shrink: 0;
}
.category-btn__label[data-v-05c3a347] {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.category-btn__count[data-v-05c3a347] {
  font-size: 0.6875rem;
  color: var(--text-tertiary);
  background: var(--surface-muted, var(--background-color));
  padding: 0.1rem 0.4rem;
  border-radius: 8px;
  flex-shrink: 0;
}

/* 설정 패널 */
.settings-panel[data-v-05c3a347] {
  flex: 1;
  padding: 1rem 0 1rem 1.5rem;
  min-width: 0;
}

/* 단일 카테고리 모드 — 사이드바가 없어 좌측 패딩 제거 */
.settings-layout--single .settings-panel[data-v-05c3a347] {
  padding-left: 0;
}

/* 로딩/빈 상태 */
.settings-loading[data-v-05c3a347],
.settings-empty[data-v-05c3a347] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 4rem 2rem;
  color: var(--text-tertiary);
  gap: 1rem;
}
.settings-loading i[data-v-05c3a347],
.settings-empty i[data-v-05c3a347] {
  font-size: 2rem;
  opacity: 0.5;
}

/* 카테고리 그룹 */
.settings-category-group[data-v-05c3a347] {
  margin-bottom: 2rem;
  scroll-margin-top: 4rem;
}
.category-title[data-v-05c3a347] {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.category-title i[data-v-05c3a347] {
  font-size: 0.875rem;
  color: var(--primary-color);
}

/* 설정 아이템 */
.setting-item[data-v-05c3a347] {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--border-color) 50%, transparent);
  border-left: 3px solid transparent;
  padding-left: 0.75rem;
}
.setting-item--modified[data-v-05c3a347] {
  border-left-color: var(--primary-color);
}
.setting-main[data-v-05c3a347] {
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
}
.setting-info[data-v-05c3a347] {
  flex: 1;
  min-width: 0;
}
.setting-label-row[data-v-05c3a347] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  margin-bottom: 0.125rem;
}
.setting-label[data-v-05c3a347] {
  font-size: 0.875rem;
  color: var(--text-primary);
  font-weight: 500;
}
.setting-desc[data-v-05c3a347] {
  display: block;
  font-size: 0.8125rem;
  color: var(--text-secondary);
  line-height: 1.4;
}
.restart-badge[data-v-05c3a347] {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 0.6875rem;
  color: var(--text-tertiary);
  cursor: default;
  user-select: none;
}
:root.dark .restart-badge[data-v-05c3a347] {
  color: var(--text-tertiary);
}

/* 리셋 버튼 */
.reset-btn[data-v-05c3a347] {
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  color: var(--text-tertiary);
  cursor: pointer;
  font-size: 0.6875rem;
  border-radius: 3px;
  padding: 0;
  transition: all 0.15s;
}
.reset-btn[data-v-05c3a347]:hover {
  color: var(--primary-color);
  background: var(--hover-color);
}

/* 저장 인디케이터 */
.save-indicator[data-v-05c3a347] {
  font-size: 0.6875rem;
}
.save-indicator--saved[data-v-05c3a347] {
  color: var(--color-success);
}
.save-indicator--error[data-v-05c3a347] {
  color: var(--color-danger);
}

/* 설정 컨트롤 */
.setting-control[data-v-05c3a347] {
  flex-shrink: 0;
  width: 280px;
}
.setting-input[data-v-05c3a347] {
  /* 외형은 AppInput/AppTextarea 토큰이 담당 — 레이아웃만 유지 */
  width: 100%;
}
.setting-input--number[data-v-05c3a347] {
  width: 120px;
}
.setting-input--json[data-v-05c3a347] {
  font-family: 'Fira Code', 'Consolas', 'Monaco', monospace;
  font-size: 0.75rem;
  resize: vertical;
  min-height: 60px;
}
.setting-select[data-v-05c3a347] {
  width: 100%;
  padding: 0.375rem 0.625rem;
  border: 1px solid var(--border-color);
  background: var(--background-color);
  color: var(--text-primary);
  border-radius: 4px;
  font-size: 0.8125rem;
  outline: none;
  cursor: pointer;
  transition: border-color 0.15s;
}
.setting-select[data-v-05c3a347]:focus {
  border-color: var(--primary-color);
}

/* 비밀번호 */
.password-wrapper[data-v-05c3a347] {
  position: relative;
  display: flex;
  align-items: center;
}
.password-wrapper .setting-input[data-v-05c3a347] {
  padding-right: 2rem;
}
.password-toggle[data-v-05c3a347] {
  position: absolute;
  right: 0.375rem;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  color: var(--text-tertiary);
  cursor: pointer;
  font-size: 0.75rem;
  padding: 0;
}
.password-toggle[data-v-05c3a347]:hover {
  color: var(--text-primary);
}

/* 토글 스위치 */
.toggle-switch[data-v-05c3a347] {
  position: relative;
  display: inline-block;
  width: 40px;
  height: 22px;
  cursor: pointer;
}
.toggle-switch input[data-v-05c3a347] {
  opacity: 0;
  width: 0;
  height: 0;
}
.toggle-slider[data-v-05c3a347] {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--text-tertiary);
  border-radius: 11px;
  transition: 0.2s;
}
.toggle-slider[data-v-05c3a347]::before {
  content: '';
  position: absolute;
  height: 16px;
  width: 16px;
  left: 3px;
  bottom: 3px;
  background: white;
  border-radius: 50%;
  transition: 0.2s;
}
.toggle-switch input:checked + .toggle-slider[data-v-05c3a347] {
  background: var(--primary-color);
}
.toggle-switch input:checked + .toggle-slider[data-v-05c3a347]::before {
  transform: translateX(18px);
}

/* 반응형 */
@media (max-width: 768px) {
.system-settings[data-v-05c3a347] {
    padding: 0 var(--page-pad-x) 1rem;
}
.settings-sidebar[data-v-05c3a347] {
    display: none;
}
.setting-main[data-v-05c3a347] {
    flex-direction: column;
    gap: 0.5rem;
}
.setting-control[data-v-05c3a347] {
    width: 100%;
}
.setting-input--number[data-v-05c3a347] {
    width: 100%;
}
.settings-panel[data-v-05c3a347] {
    padding: 1rem 0;
}
}

.catalog-config[data-v-b965bc4c] {
  /* 위 여백 0 — 서브탭(TabNav variant=sub)이 자체 margin 으로 간격을 소유 */
  padding: 0;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

/* ListScreen 이 남는 공간을 모두 차지하고 내부 스크롤 */
.catalog-config[data-v-b965bc4c] .list-screen {
  flex: 1;
  min-height: 0;
  /* 루트 상단 여백은 서브탭이 소유하므로 0 */
  padding-top: 0;
}

/* 설정 서브탭 컨테이너 — 내부 패널이 직접 배치 */
.section[data-v-b965bc4c] {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  padding: 0 var(--page-pad-x) 1.5rem;
  max-width: 1400px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}
.section[data-v-b965bc4c] .system-settings {
  padding: 0;
  max-width: none;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

/* ─── 테이블 셀 표현 ─── */
.title-cell[data-v-b965bc4c] {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}
.title-product[data-v-b965bc4c] {
  color: var(--text-primary);
  font-weight: var(--font-weight-medium);
}
/* 클릭 가능한 카탈로그 제목 — hover 시 primary 강조, 기본은 본문 색 유지. */
.title-product--link[data-v-b965bc4c] {
  text-decoration: none;
  cursor: pointer;
  transition: color var(--transition-fast);
}
.title-product--link[data-v-b965bc4c]:hover {
  color: var(--primary-color);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.title-company[data-v-b965bc4c] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--font-xs);
  color: var(--text-secondary);
  min-width: 0;
}
.company-favicon[data-v-b965bc4c] {
  width: 14px;
  height: 14px;
  border-radius: var(--radius-xs);
  object-fit: contain;
  flex-shrink: 0;
}
.text-sm[data-v-b965bc4c] { font-size: var(--font-sm);
}

/* 상태 뱃지 */
.status-badge[data-v-b965bc4c] {
  display: inline-block;
  padding: 2px var(--space-2);
  border-radius: var(--radius-xs);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
}
.status-badge--published[data-v-b965bc4c] { color: var(--color-success);
}
.status-badge--draft[data-v-b965bc4c]     { color: var(--text-secondary);
}
.status-badge--building[data-v-b965bc4c]  { color: var(--color-info);
}
.status-badge--unlisted[data-v-b965bc4c]  { color: var(--color-warning);
}
.status-badge--archived[data-v-b965bc4c]  { color: var(--color-danger);
}

/* 파일 상태 아이콘 */
.ok-icon[data-v-b965bc4c]   { color: var(--color-success);
}
.warn-icon[data-v-b965bc4c] { color: var(--color-warning);
}

/* 액션 — icon-only AppButton 묶음 */
.action-btns[data-v-b965bc4c] {
  display: flex;
  gap: var(--space-1);
  justify-content: center;
}

/* ─── 카드형 본문 ─── */
.cat-card[data-v-b965bc4c] {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
  width: 100%;
}
.cat-card__title[data-v-b965bc4c] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.cat-card__title .title-product[data-v-b965bc4c] {
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  word-break: break-word;
}
.cat-card__company[data-v-b965bc4c] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--font-sm);
  color: var(--text-secondary);
}
.cat-card__metrics[data-v-b965bc4c] {
  display: flex;
  align-items: center;
  gap: var(--space-1) var(--space-3);
  flex-wrap: wrap;
}
.cat-card__meta[data-v-b965bc4c] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.cat-card__actions[data-v-b965bc4c] {
  display: flex;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-top: var(--space-1);
}

/* ─── 후보 모달 ─── */
.cand-filter-bar[data-v-b965bc4c] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-bottom: var(--space-2);
}
.cand-filter-bar--row2[data-v-b965bc4c] {
  padding-bottom: var(--space-2);
  border-bottom: 1px dashed var(--border-color);
}
.cand-search-input[data-v-b965bc4c] { flex: 1 1 100%; min-width: 0;
}
.cand-sort-spacer[data-v-b965bc4c] { flex: 1 1 auto;
}

/* 후보 모달 — sticky 일괄선택 바 */
.cand-bulk-bar[data-v-b965bc4c] {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky, 1);
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  background: var(--surface-color);
  border: 1px solid var(--primary-color);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-3);
}
.cand-select-all[data-v-b965bc4c] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--font-sm);
  color: var(--text-primary);
  cursor: pointer;
  user-select: none;
}
.cand-count[data-v-b965bc4c] {
  font-size: var(--font-sm);
  color: var(--primary-color);
  font-weight: var(--font-weight-semibold);
  margin-right: auto;
}
.cand-filtered-info[data-v-b965bc4c] {
  margin-left: var(--space-1);
  font-weight: var(--font-weight-regular);
  color: var(--text-secondary);
}
.bulk-checkbox[data-v-b965bc4c] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: var(--primary-color);
}
.candidate-list[data-v-b965bc4c] {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  max-height: 65vh;
  overflow-y: auto;
}
.candidate-list li[data-v-b965bc4c] {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--surface-color);
}
.cand-checkbox[data-v-b965bc4c] { margin-top: 3px;
}
.cand-info[data-v-b965bc4c] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--space-1);
}
.cand-title[data-v-b965bc4c] {
  display: flex;
  align-items: flex-start;
  gap: var(--space-1);
  color: var(--text-primary);
  font-size: var(--font-md);
}
/* 좁아지면 상품명만 줄바꿈, 뱃지/종류는 자리 유지 */
.cand-title .cand-doc-type[data-v-b965bc4c],
.cand-title .cand-doc-sep[data-v-b965bc4c],
.cand-title .cand-doc-revision[data-v-b965bc4c],
.cand-title .cat-badge[data-v-b965bc4c] {
  flex-shrink: 0;
  white-space: nowrap;
}
.cand-title .cand-doc-title[data-v-b965bc4c] {
  flex: 1 1 auto;
  min-width: 0;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.cand-doc-type[data-v-b965bc4c] {
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
}
.cand-doc-sep[data-v-b965bc4c] { color: var(--text-tertiary);
}
.cand-doc-title[data-v-b965bc4c] { font-weight: var(--font-weight-medium);
}
.cand-doc-revision[data-v-b965bc4c] { color: var(--text-secondary); font-weight: var(--font-weight-regular); font-size: 0.85em;
}
.cand-sub[data-v-b965bc4c] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  flex-wrap: wrap;
  font-size: var(--font-xs);
  color: var(--text-secondary);
}
.cand-divider[data-v-b965bc4c] { color: var(--text-tertiary);
}
.cand-meta-people[data-v-b965bc4c] { display: inline-flex; align-items: center; gap: var(--space-1);
}
.cand-when[data-v-b965bc4c] {
  color: var(--text-tertiary);
  font-size: var(--font-xs);
}

/* 신규/기존 카탈로그 뱃지 */
.cat-badge[data-v-b965bc4c] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
}
.cat-badge--new[data-v-b965bc4c]      { background: var(--surface-success-soft); color: var(--color-success);
}
.cat-badge--existing[data-v-b965bc4c] { background: var(--surface-info-soft); color: var(--color-info);
}
.cat-badge--update[data-v-b965bc4c]   { background: var(--surface-warning-soft); color: var(--color-warning);
}
.cat-badge i[data-v-b965bc4c] { font-size: 0.85em;
}
/* 1줄 우측 정렬 (제목/종류는 좌측, 카탈로그 상태 뱃지는 우측) */
.cand-title .cat-badge[data-v-b965bc4c] { margin-left: auto;
}
.empty-text[data-v-b965bc4c] {
  padding: var(--space-8);
  text-align: center;
  color: var(--text-secondary);
}

/* === 모바일 반응형 === */
@media (max-width: 768px) {
.section[data-v-b965bc4c] {
    padding: 0 var(--page-pad-x) 1rem;
}
}

.avatar-popover[data-v-35921adc] {
  display: inline-flex;
  position: relative;
}
.avatar-popover__avatar[data-v-35921adc] {
  cursor: pointer;
}
.avatar-popover__card[data-v-35921adc] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 0.5rem;
  box-shadow: var(--shadow-md);
  min-width: 200px;
  overflow: hidden;
}
.avatar-popover__profile[data-v-35921adc] {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.75rem;
}
.avatar-popover__profile-avatar[data-v-35921adc] {
  flex-shrink: 0;
}
.avatar-popover__info[data-v-35921adc] {
  display: flex;
  flex-direction: column;
}
.avatar-popover__name[data-v-35921adc] {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-primary);
}
.avatar-popover__uid[data-v-35921adc] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
}
.avatar-popover__actions[data-v-35921adc] {
  padding: 0.375rem;
  border-top: 1px solid var(--border-color);
}


.todos-cell[data-v-241f7072] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  overflow-x: auto;
  min-width: 0;
}
.todo-badge[data-v-241f7072] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 2px var(--space-2);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  font-size: var(--font-xs);
  cursor: pointer;
  transition: all var(--transition-fast);
  color: var(--text-primary);
  white-space: nowrap;
  flex-shrink: 0;
}
.todo-badge__id[data-v-241f7072],
.todo-badge__status[data-v-241f7072],
.todo-badge__progress[data-v-241f7072] {
  white-space: nowrap;
  flex-shrink: 0;
}
.todo-badge__assignee > span[data-v-241f7072] {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 7em;
}
.todo-badge[data-v-241f7072]:hover {
  background: var(--surface-hover);
  border-color: var(--primary-color);
}
.todo-badge__id[data-v-241f7072] {
  font-weight: var(--font-weight-semibold);
  font-variant-numeric: tabular-nums;
}
.todo-badge__status[data-v-241f7072] {
  padding: 1px var(--space-1);
  border-radius: var(--radius-sm);
  background: var(--surface-color);
  color: var(--text-secondary);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
}
.todo-badge--pending     .todo-badge__status[data-v-241f7072] { color: var(--text-tertiary);
}
.todo-badge--in_progress .todo-badge__status[data-v-241f7072] { color: var(--color-info);
}
.todo-badge--review      .todo-badge__status[data-v-241f7072] { color: var(--color-warning);
}
.todo-badge--completed   .todo-badge__status[data-v-241f7072] { color: var(--success-color);
}
.todo-badge__progress[data-v-241f7072] {
  font-variant-numeric: tabular-nums;
  color: var(--text-secondary);
}
.todo-badge__assignee[data-v-241f7072] {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: var(--text-tertiary);
  border-left: 1px solid var(--border-color);
  padding-left: var(--space-1);
  margin-left: 2px;
}
.todo-badge--pending[data-v-241f7072]     { border-left: 3px solid var(--text-tertiary);
}
.todo-badge--in_progress[data-v-241f7072] { border-left: 3px solid var(--color-info);
}
.todo-badge--review[data-v-241f7072]      { border-left: 3px solid var(--color-warning);
}
.todo-badge--completed[data-v-241f7072]   { border-left: 3px solid var(--success-color); opacity: 0.7;
}
.todo-badge__delete[data-v-241f7072] {
  flex-shrink: 0;
}
.create-todo-btn[data-v-241f7072] {
  border: 1px dashed var(--border-color);
}
.create-todo-btn[data-v-241f7072]:hover {
  border-style: solid;
  border-color: var(--primary-color);
}

.catalog-badge[data-v-a5df906a] {
  border: 1px solid var(--border-color);
  font-weight: var(--font-weight-semibold);
}
.catalog-badge--published[data-v-a5df906a]   { border-left: 3px solid var(--success-color);
}
.catalog-badge--unlisted[data-v-a5df906a]    { border-left: 3px solid var(--text-tertiary); opacity: 0.7;
}

/* ── 통계 카드 (가이드 §3 — stat-card 표준) ── */
.stats-summary[data-v-dde4e9f5] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-2);
}
.stat-card[data-v-dde4e9f5] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  padding: var(--space-2) var(--space-4);
  min-height: 44px;
  min-width: 0;
}
.stat-card[data-v-dde4e9f5]:has(.stat-trend) {
  justify-content: flex-start;
}
.stat-card:has(.stat-trend) .stat-content[data-v-dde4e9f5] {
  margin-right: auto;
}
.stat-trend[data-v-dde4e9f5] {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-1);
  min-width: 0;
  flex: 1 1 140px;
  max-width: 220px;
}
.stat-spark[data-v-dde4e9f5] {
  width: 100%;
  height: 28px;
  min-width: 60px;
}
.stat-eta[data-v-dde4e9f5] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  line-height: 1.25;
  text-align: right;
  word-break: keep-all;
  white-space: normal;
  overflow-wrap: break-word;
}
.stat-icon[data-v-dde4e9f5] {
  width: 28px;
  height: 28px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-sm);
  color: white;
  flex-shrink: 0;
}
.stat-icon--total[data-v-dde4e9f5]       { background: var(--primary-color);
}
.stat-icon--assignment[data-v-dde4e9f5]  { background: var(--color-info);
}
.stat-icon--progress[data-v-dde4e9f5]    { background: var(--success-color);
}
.stat-icon--catalog[data-v-dde4e9f5]     { background: var(--color-warning);
}
.stat-content[data-v-dde4e9f5] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
}
.stat-label[data-v-dde4e9f5] {
  font-size: var(--font-sm);
  color: var(--text-secondary);
  white-space: nowrap;
}
.stat-value[data-v-dde4e9f5] {
  font-size: var(--font-xl);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.stat-value-group[data-v-dde4e9f5] {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1);
}
.stat-sublabel[data-v-dde4e9f5] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  line-height: 1;
}
@media (max-width: 1100px) {
.stats-summary[data-v-dde4e9f5] {
    grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 540px) {
.stats-summary[data-v-dde4e9f5] {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-1);
}
.stat-card[data-v-dde4e9f5] {
    flex-direction: column;
    gap: var(--space-1);
    padding: var(--space-1);
    min-height: 0;
}
.stat-icon[data-v-dde4e9f5] {
    width: 22px;
    height: 22px;
    font-size: var(--font-xs);
}
.stat-label[data-v-dde4e9f5],
  .stat-sublabel[data-v-dde4e9f5] {
    display: none;
}
.stat-content[data-v-dde4e9f5] {
    flex-direction: column;
    align-items: center;
    gap: 0;
}
.stat-value[data-v-dde4e9f5] {
    font-size: var(--font-md);
}
.stat-trend[data-v-dde4e9f5] {
    display: none;
}
.stat-card[data-v-dde4e9f5]:has(.stat-trend) {
    justify-content: center;
}
.stat-card:has(.stat-trend) .stat-content[data-v-dde4e9f5] {
    margin-right: 0;
}
}
@media (max-width: 360px) {
.stats-summary[data-v-dde4e9f5] {
    grid-template-columns: repeat(2, 1fr);
}
}

/* ── 일괄 'TODO 만들기' 버튼 — 인라인 진행률 (background fill) ── */
.bulk-create-btn[data-v-dde4e9f5] {
  position: relative;
  overflow: hidden;
  min-width: 140px;
  font-variant-numeric: tabular-nums;
}
.bulk-create-btn.bulk-create-btn--running[data-v-dde4e9f5] {
  background: linear-gradient(
    to right,
    var(--primary-color) var(--bulk-pct, 0%),
    var(--surface-color-secondary) var(--bulk-pct, 0%)
  );
  color: var(--text-primary);
  border-color: var(--primary-color);
}

/* ── 셀 콘텐츠 ── */
.date-cell[data-v-dde4e9f5] {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-size: var(--font-sm);
  color: var(--text-secondary);
}
.page-count-cell[data-v-dde4e9f5],
.issue-count-cell[data-v-dde4e9f5] {
  font-variant-numeric: tabular-nums;
  font-size: var(--font-sm);
  color: var(--text-secondary);
}
.issue-count-cell--has[data-v-dde4e9f5] {
  color: var(--color-warning);
  font-weight: var(--font-weight-semibold);
}
.date-sep[data-v-dde4e9f5] {
  color: var(--text-tertiary);
  margin: 0 2px;
}
.company-cell[data-v-dde4e9f5] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.company-favicon[data-v-dde4e9f5] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
  object-fit: contain;
}
.company-name[data-v-dde4e9f5] {
  font-weight: var(--font-weight-medium);
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.document-name[data-v-dde4e9f5] {
  font-weight: var(--font-weight-medium);
  color: var(--text-primary);
  /* 상품 컬럼은 wrap — 폭 초과 시 ... 대신 줄바꿈 */
  white-space: normal;
  overflow-wrap: anywhere;
}
/* 문서유형 — 컬러 텍스트만 */
.doctype-badge[data-v-dde4e9f5] {
  display: inline-block;
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  flex-shrink: 0;
  line-height: 1;
}
/* 문서유형별 색상 — id 기반 */
.doctype-badge--1[data-v-dde4e9f5] { color: var(--color-info);
}
.doctype-badge--2[data-v-dde4e9f5] { color: var(--color-warning);
}
.doctype-badge--3[data-v-dde4e9f5] { color: var(--success-color);
}
.doctype-badge--4[data-v-dde4e9f5] { color: var(--color-danger);
}

/* TODO/카탈로그 셀은 공통 컴포넌트(ParsingJobTodosCell/ParsingJobCatalogCell)가 자체 스타일 보유 */

/* 키워드 매치 형광 표시는 공통 HighlightText 컴포넌트가 자체 스타일 보유 */

/* ── 일괄 체크박스 (테이블/카드 #check 슬롯) ── */
.row-check[data-v-dde4e9f5] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: var(--primary-color);
}
.row-check[data-v-dde4e9f5]:disabled {
  cursor: not-allowed;
  opacity: 0.7;
  accent-color: var(--primary-color);
}

/* ── 카드형 문서 카드 — 5줄 고정 높이 ── */
.doc-card[data-v-dde4e9f5] {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-1);
  height: 100%;
  min-width: 0;
  /* 상품명 자연 줄바꿈으로 200px 초과 시 초과분 클립 (line-clamp 대신) */
  overflow: hidden;
}

/* 1줄: 상품명 + 문서유형 뱃지 — 한 묶음 인라인 흐름. 상품명 길면 자연 줄바꿈 */
/* 1줄: 상품명 + 문서유형 — 하나의 텍스트 문장처럼 흐른다(한 줄 취급).
   flex 아님 — 일반 텍스트 블록이라 상품명과 문서유형이 끊김 없이 이어지고
   길면 문장처럼 자연 줄바꿈. */
.doc-card__title[data-v-dde4e9f5] {
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-tight);
  color: var(--text-primary);
  /* 말줄임(...)·line-clamp 금지 — 길면 자연 줄바꿈 */
  overflow-wrap: anywhere;
}
/* 문서유형 — 상품명과 같은 폰트(상속), 색만 다른 인라인 텍스트. 뱃지 박스 아님.
   상품명과 한 칸 띄움(한 문장처럼). */
.doc-card__title .doctype-badge[data-v-dde4e9f5] {
  display: inline;
  font-size: inherit;
  font-weight: inherit;
  margin-left: var(--space-1);
}

/* 2줄: 파비콘 + 회사명 + 판매기간 */
.doc-card__company-row[data-v-dde4e9f5] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  font-size: var(--font-sm);
  color: var(--text-secondary);
}
.doc-card__company[data-v-dde4e9f5] {
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-shrink: 1;
  min-width: 0;
}
.doc-card__sep[data-v-dde4e9f5] {
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.doc-card__period[data-v-dde4e9f5] {
  color: var(--text-tertiary);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  flex-shrink: 0;
}

/* 3줄: 페이지 · 이슈 (라벨+값) — 우측 정렬 */
.doc-card__metrics[data-v-dde4e9f5] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-1);
  min-width: 0;
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.doc-card__meta[data-v-dde4e9f5] {
  color: var(--text-tertiary);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  flex-shrink: 0;
}
.doc-card__meta--alert[data-v-dde4e9f5] {
  color: var(--color-warning);
  font-weight: var(--font-weight-semibold);
}

/* 4·5줄: TODO / 카탈로그 — 테이블 셀 공통 컴포넌트, 우측 정렬 */
.doc-card__cellrow[data-v-dde4e9f5] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
}
.doc-card__cellrow[data-v-dde4e9f5] > * {
  min-width: 0;
  max-width: 100%;
}

/* 통계 카드 — AdminParsingJobs stat-card 표준 따름 */
.stats-summary[data-v-4b10beee] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-3);
}
.stat-card[data-v-4b10beee] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: var(--space-3);
  display: flex;
  align-items: center;
  gap: var(--space-3);
  transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}
.stat-card[data-v-4b10beee]:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}
.stat-icon[data-v-4b10beee] {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-sm);
  color: white;
}
.stat-icon--today[data-v-4b10beee] { background: var(--color-info);
}
.stat-icon--users[data-v-4b10beee] { background: var(--color-danger);
}
.stat-icon--page[data-v-4b10beee] { background: var(--color-success);
}
.stat-content[data-v-4b10beee] {
  flex: 1;
  min-width: 0;
}
.stat-label[data-v-4b10beee] {
  font-size: var(--font-sm);
  color: var(--text-secondary);
  margin-bottom: var(--space-1);
}
.stat-value[data-v-4b10beee] {
  font-size: var(--font-lg);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
}
.stat-sublabel[data-v-4b10beee] {
  font-size: var(--font-xs);
  color: var(--text-secondary);
  margin-top: var(--space-1);
}

/* 상세 필터 — 날짜 선택기 폭 고정 (상세 필터 컨트롤은 늘리지 않는다).
   DateRangePicker 루트가 width:100% 라 폭을 명시하지 않으면 한 줄을 다 차지한다. */
[data-v-4b10beee] .date-picker-custom {
  width: 260px;
}

/* ─── 테이블 셀 표현 ─── */
.username[data-v-4b10beee] {
  font-weight: var(--font-weight-medium);
  color: var(--primary-color);
}
.activity-badge[data-v-4b10beee] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  white-space: nowrap;
}
.activity-badge--login[data-v-4b10beee] {
  background: var(--surface-success-soft);
  color: var(--color-success);
}
.activity-badge--logout[data-v-4b10beee] {
  background: var(--surface-danger-soft);
  color: var(--color-danger);
}
.activity-badge--page_visit[data-v-4b10beee] {
  background: var(--surface-info-soft);
  color: var(--color-info);
}
.activity-badge--page_leave[data-v-4b10beee] {
  background: var(--surface-warning-soft);
  color: var(--color-warning);
}
.activity-badge--api_call[data-v-4b10beee] {
  background: var(--surface-muted, var(--border-subtle));
  color: var(--text-secondary);
}

/* 상세 컬럼 — 페이지 라벨 + 경로 보조 표시 */
.detail-page[data-v-4b10beee] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-weight: var(--font-weight-medium);
  color: var(--text-primary);
}
.detail-page i[data-v-4b10beee] {
  color: var(--primary-color);
  font-size: var(--font-sm);
}
.detail-page-label[data-v-4b10beee] {
  white-space: nowrap;
}
.detail-path[data-v-4b10beee] {
  display: inline-block;
  margin-left: var(--space-2);
  color: var(--text-tertiary);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--font-xs);
  max-width: 320px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}
.detail-text[data-v-4b10beee] {
  color: var(--text-primary);
}

/* ─── 카드형 본문 ─── */
.log-card[data-v-4b10beee] {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
  width: 100%;
}
.log-card__top[data-v-4b10beee] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.log-card__user[data-v-4b10beee] {
  font-size: var(--font-sm);
  font-weight: var(--font-weight-medium);
  color: var(--primary-color);
}
.log-card__details[data-v-4b10beee] {
  font-size: var(--font-sm);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.log-card__details .detail-path[data-v-4b10beee] {
  margin-left: 0;
  max-width: 100%;
}
.log-card__meta[data-v-4b10beee] {
  display: flex;
  align-items: center;
  gap: var(--space-1) var(--space-3);
  flex-wrap: wrap;
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.log-card__meta span[data-v-4b10beee] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}
@media (max-width: 1100px) {
.detail-path[data-v-4b10beee] {
    max-width: 180px;
}
}

/* === 모바일 반응형 === */
@media (max-width: 768px) {
  /* 통계 카드: 3열, 카드당 2줄 (아이콘+라벨 / 값) */
.stats-summary[data-v-4b10beee] {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-1);
}
.stat-card[data-v-4b10beee] {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    gap: 0 var(--space-1);
    padding: var(--space-1) var(--space-2);
    align-items: center;
}
.stat-card[data-v-4b10beee]:hover {
    transform: none;
}
.stat-icon[data-v-4b10beee] {
    width: 20px;
    height: 20px;
    font-size: var(--font-xs);
    border-radius: var(--radius-sm);
    flex-shrink: 0;
    grid-row: 1;
    grid-column: 1;
}
.stat-content[data-v-4b10beee] {
    display: contents;
}
.stat-label[data-v-4b10beee] {
    font-size: var(--font-xs);
    white-space: nowrap;
    grid-row: 1;
    grid-column: 2;
    margin-bottom: 0;
}
.stat-value[data-v-4b10beee] {
    font-size: var(--font-md);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    grid-row: 2;
    grid-column: 1 / -1;
    text-align: center;
}
.stat-sublabel[data-v-4b10beee] {
    display: none;
}
[data-v-4b10beee] .date-picker-custom {
    min-width: 0;
    width: 100%;
}
}

.system-monitoring[data-v-0f25632e] {
  padding: var(--page-pad-x) var(--page-pad-x) 1.5rem;
  max-width: 1400px;
  margin: 0 auto;
  animation: fadeIn-0f25632e 0.3s ease;
}

/* ─── 상단 자동 갱신 바 ─── */
.refresh-bar[data-v-0f25632e] {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0;
  margin-bottom: 0.5rem;
  background: var(--surface-color);
}
.last-refreshed[data-v-0f25632e] {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.75rem;
  color: var(--text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.refresh-controls[data-v-0f25632e] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.refresh-controls[data-v-0f25632e] .multi-select-control {
  padding: 0 !important;
  background: var(--background-color);
  min-height: unset !important;
  height: 26px;
}
.refresh-controls[data-v-0f25632e] .multi-select-tags {
  padding: 0 0.5rem;
  display: flex;
  align-items: center;
  height: 100%;
}
.refresh-controls[data-v-0f25632e] .multi-select-tag {
  background: transparent !important;
  color: var(--text-secondary) !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  font-weight: normal !important;
  font-size: 0.75rem !important;
  height: auto !important;
  line-height: inherit !important;
}
.refresh-controls[data-v-0f25632e] .multi-select-tag-remove {
  display: none !important;
}
.refresh-timer[data-v-0f25632e] {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.progress-ring[data-v-0f25632e] {
  transform: rotate(-90deg);
}
.progress-ring-circle-bg[data-v-0f25632e] {
  opacity: 0.2;
}
.progress-ring-circle[data-v-0f25632e] {
  stroke-dasharray: 69.12 69.12; /* 2 * PI * 11 */
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 1s linear, stroke 0.3s;
  stroke-linecap: round;
}
.timer-text[data-v-0f25632e] {
  position: absolute;
  font-size: 0.55rem;
  font-weight: 600;
  color: var(--text-primary);
}

/* ─── 섹션 ─── */
.section[data-v-0f25632e] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1rem;
  margin-bottom: 1rem;
  min-width: 0;
  overflow: hidden;
}
.section-description[data-v-0f25632e] {
  margin: 0.25rem 0 0.75rem 0;
  font-size: 0.78rem;
  color: var(--text-secondary);
  line-height: 1.5;
}
.section-header[data-v-0f25632e] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}
.section-header h3[data-v-0f25632e] {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.section-header h3 i[data-v-0f25632e] {
  color: var(--primary-color);
  font-size: 0.9rem;
}
.header-badge[data-v-0f25632e] {
  font-size: 0.75rem;
  padding: 0.2rem 0.6rem;
  border-radius: 10px;
  background: var(--primary-color);
  color: var(--color-white);
}

/* ─── 서비스 카드 ─── */
.service-cards[data-v-0f25632e] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.75rem;
}
.service-card[data-v-0f25632e] {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 0.75rem;
  border-radius: 8px;
  border: 1px solid var(--border-color);
  background: var(--background-color);
  gap: 0.5rem;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.service-card[data-v-0f25632e]:hover {
  border-color: var(--primary-color);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}
.service-remove-btn[data-v-0f25632e] {
  position: absolute;
  top: 4px;
  right: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  background: none;
  border: none;
  border-radius: 4px;
  color: var(--text-tertiary);
  cursor: pointer;
  font-size: 0.7rem;
  opacity: 0;
  transition: all 0.15s;
}
.service-card:hover .service-remove-btn[data-v-0f25632e] {
  opacity: 1;
}
.service-remove-btn[data-v-0f25632e]:hover {
  color: var(--color-danger);
  background: var(--surface-danger-soft);
}
.service-card.status--running[data-v-0f25632e] { border-left: 3px solid var(--success-color);
}
.service-card.status--stopped[data-v-0f25632e] { border-left: 3px solid var(--text-tertiary); opacity: 0.6;
}
.service-card.status--stale[data-v-0f25632e] { border-left: 3px solid var(--color-warning);
}
.service-card.status--failed[data-v-0f25632e] { border-left: 3px solid var(--color-danger);
}
.service-header[data-v-0f25632e] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}
.service-icon[data-v-0f25632e] { font-size: 1.1rem; color: var(--primary-color);
}
.service-name[data-v-0f25632e] { font-weight: 600; font-size: 0.85rem; color: var(--text-primary); text-transform: capitalize;
}
.service-status-badge[data-v-0f25632e] {
  font-size: 0.7rem;
  padding: 0.15rem 0.5rem;
  border-radius: 10px;
  font-weight: 500;
}
.service-status-badge.status--running[data-v-0f25632e] { background: var(--surface-success-soft); color: var(--color-success);
}
.service-status-badge.status--stopped[data-v-0f25632e] { background: var(--surface-hover); color: var(--text-secondary);
}
.service-status-badge.status--stale[data-v-0f25632e] { background: var(--surface-warning-soft); color: var(--color-warning);
}
.service-status-badge.status--failed[data-v-0f25632e] { background: var(--surface-danger-soft); color: var(--color-danger);
}
.service-metrics[data-v-0f25632e] {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-top: 0.25rem;
  width: 100%;
}
.metrics-row[data-v-0f25632e] {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0 0.25rem;
  width: 100%;
}
.metrics-row + .metrics-row[data-v-0f25632e] {
  border-top: 1px solid var(--border-color);
  padding-top: 0.25rem;
}
.metric[data-v-0f25632e] { display: flex; flex-direction: column; align-items: center;
}
.metric-label[data-v-0f25632e] { font-size: 0.65rem; color: var(--text-tertiary); text-transform: uppercase;
}
.metric-value[data-v-0f25632e] { font-size: 0.8rem; font-weight: 600; color: var(--text-primary); white-space: nowrap;
}
.metric-sub[data-v-0f25632e] { font-weight: 400; color: var(--text-tertiary); font-size: 0.7rem;
}

/* ─── 스파크라인 ─── */
.sparkline[data-v-0f25632e] {
  display: block;
  width: 50%;
  height: 12px;
  margin-top: 1px;
  opacity: 0.7;
}
.metric:hover .sparkline[data-v-0f25632e] {
  opacity: 1;
}
.service-uptime[data-v-0f25632e] {
  width: 100%;
  margin-top: auto;
  padding-top: 0.35rem;
  border-top: 1px solid var(--border-color);
}
.uptime-row[data-v-0f25632e] {
  display: flex;
  justify-content: space-between;
  font-size: 0.7rem;
  line-height: 1.5;
}
.uptime-label[data-v-0f25632e] {
  color: var(--text-tertiary);
}
.uptime-value[data-v-0f25632e] {
  color: var(--text-secondary);
  font-weight: 500;
}

/* ─── 2열 레이아웃 ─── */
.two-column[data-v-0f25632e] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
.two-column .section[data-v-0f25632e] {
  margin-bottom: 0;
}

/* ─── 상태 점 ─── */
.status-dot[data-v-0f25632e] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}
.status-dot--ok[data-v-0f25632e] { background: var(--color-success); box-shadow: 0 0 6px var(--surface-success-soft);
}
.status-dot--error[data-v-0f25632e] { background: var(--color-danger); box-shadow: 0 0 6px var(--surface-danger-soft);
}

/* ─── 정보 그리드 ─── */
.info-grid[data-v-0f25632e] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
}
.info-item[data-v-0f25632e] {
  display: flex;
  justify-content: space-between;
  padding: 0.4rem 0.6rem;
  border-radius: 4px;
  background: var(--background-color);
}
.info-item--highlight[data-v-0f25632e] {
  grid-column: 1 / -1;
  background: var(--surface-indigo-soft);
}
.info-label[data-v-0f25632e] { font-size: 0.8rem; color: var(--text-secondary);
}
.info-value[data-v-0f25632e] { font-size: 0.8rem; font-weight: 600; color: var(--text-primary);
}
.info-value--large[data-v-0f25632e] {
  font-size: 1.1rem;
  color: var(--primary-color);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.disconnected-state[data-v-0f25632e] {
  text-align: center;
  padding: 2rem;
  color: var(--text-tertiary);
}
.disconnected-state i[data-v-0f25632e] { font-size: 2rem; margin-bottom: 0.5rem; display: block;
}

/* ─── 미니 차트 ─── */
.mini-chart-section[data-v-0f25632e] {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border-color);
}
.chart-title[data-v-0f25632e] {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-secondary);
  margin-bottom: 0.5rem;
}
.mini-chart[data-v-0f25632e] {
  height: 180px;
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

/* ─── DB 추이 차트 ─── */
.db-trend-charts .mini-chart-section[data-v-0f25632e] {
  border-top: 1px solid var(--border-color);
  margin-top: 0.75rem;
  padding-top: 0.75rem;
}
.db-trend-charts .mini-chart-section[data-v-0f25632e]:first-child {
  margin-top: 0.75rem;
}

/* ─── 테이블 리스트 ─── */
.top-tables[data-v-0f25632e] {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border-color);
}
.table-list[data-v-0f25632e] {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.table-row[data-v-0f25632e] {
  display: flex;
  justify-content: space-between;
  padding: 0.35rem 0.6rem;
  border-radius: 4px;
  background: var(--background-color);
  font-size: 0.75rem;
}
.table-name[data-v-0f25632e] { color: var(--text-primary); font-weight: 500; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.table-rows[data-v-0f25632e] { color: var(--text-tertiary); width: 100px; text-align: right;
}
.table-size[data-v-0f25632e] { color: var(--text-secondary); font-weight: 500; width: 80px; text-align: right;
}


/* ─── 크롤링 ─── */
.active-crawls[data-v-0f25632e] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.crawl-item[data-v-0f25632e] {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.6rem 0.8rem;
  border-radius: 6px;
  background: var(--background-color);
}
.crawl-info[data-v-0f25632e] { flex: 1; min-width: 0;
}
.crawl-company[data-v-0f25632e] { font-weight: 600; font-size: 0.85rem; color: var(--text-primary); display: block;
}
.crawl-task[data-v-0f25632e] { font-size: 0.75rem; color: var(--text-tertiary); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.crawl-progress-wrap[data-v-0f25632e] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 180px;
}
.crawl-progress-bar[data-v-0f25632e] {
  flex: 1;
  height: 6px;
  border-radius: 3px;
  background: var(--border-color);
  overflow: hidden;
}
.crawl-progress-fill[data-v-0f25632e] {
  height: 100%;
  border-radius: 3px;
  background: var(--primary-color);
  transition: width 0.5s ease;
}
.crawl-progress-text[data-v-0f25632e] { font-size: 0.8rem; font-weight: 600; color: var(--primary-color); min-width: 35px; text-align: right;
}
.crawl-cancel-btn[data-v-0f25632e] {
  flex-shrink: 0;
}
.no-active-crawls[data-v-0f25632e] {
  text-align: center;
  padding: 1.5rem;
  color: var(--text-tertiary);
  font-size: 0.85rem;
}
.no-active-crawls i[data-v-0f25632e] { margin-right: 0.4rem;
}

/* 세션 테이블 */
.recent-sessions[data-v-0f25632e] {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border-color);
}
/* .session-list 의 높이는 ListBody 의 max-height prop 으로 제어 (데이터 양에 맞춤) */
.session-status[data-v-0f25632e] {
  font-size: 0.7rem;
  padding: 0.15rem 0.5rem;
  border-radius: 10px;
  font-weight: 500;
}
.session--success[data-v-0f25632e] { color: var(--color-success);
}
.session--error[data-v-0f25632e] { color: var(--color-danger);
}
.session--running[data-v-0f25632e] { color: var(--color-indigo);
}
.session--default[data-v-0f25632e] { color: var(--text-secondary);
}
.new-count[data-v-0f25632e] {
  color: var(--color-success);
  font-weight: 600;
  margin-right: 0.3rem;
}

/* ─── 공통 ─── */
.empty-state[data-v-0f25632e] {
  text-align: center;
  padding: 2rem;
  color: var(--text-tertiary);
}
.empty-state i[data-v-0f25632e] { font-size: 1.5rem; margin-bottom: 0.5rem; display: block;
}
.empty-state p[data-v-0f25632e] { margin: 0; font-size: 0.85rem;
}
@keyframes fadeIn-0f25632e {
from { opacity: 0; transform: translateY(10px);
}
to { opacity: 1; transform: translateY(0);
}
}

/* ─── 반응형 ─── */
@media (max-width: 768px) {
.two-column[data-v-0f25632e] {
    grid-template-columns: 1fr;
}
.service-cards[data-v-0f25632e] {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}
.crawl-item[data-v-0f25632e] {
    flex-direction: column;
    align-items: stretch;
}
.crawl-progress-wrap[data-v-0f25632e] {
    min-width: unset;
}
.info-grid[data-v-0f25632e] {
    grid-template-columns: 1fr;
}
.refresh-controls[data-v-0f25632e] {
    justify-content: space-between;
}
}
@media (max-width: 480px) {
.system-monitoring[data-v-0f25632e] {
    padding: 0.25rem var(--page-pad-x) 1rem;
}
.last-refreshed__label[data-v-0f25632e] {
    display: none;
}
.section[data-v-0f25632e] {
    padding: 0.75rem;
}
.table-rows[data-v-0f25632e] { width: 80px;
}
.table-size[data-v-0f25632e] { width: 60px;
}
}

/* 다운로드 큐 — 파이프 스타일 */
.dq-list[data-v-0f25632e] {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.dq-row[data-v-0f25632e] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.dq-company[data-v-0f25632e] {
  min-width: 130px;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}
.dq-favicon[data-v-0f25632e] {
  width: 16px;
  height: 16px;
  border-radius: 2px;
  flex-shrink: 0;
}
.dq-favicon-fallback[data-v-0f25632e] {
  width: 16px;
  font-size: 14px;
  color: var(--text-secondary);
  flex-shrink: 0;
}
.dq-pipe[data-v-0f25632e] {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 2px;
  min-height: 22px;
  background: var(--surface-muted);
  border: 1px solid var(--border-color);
  border-radius: 4px;
  padding: 2px 4px;
  overflow: hidden;
}
.dq-processing[data-v-0f25632e] {
  flex-shrink: 0;
  font-size: 11px;
  color: var(--primary-color);
  width: 18px;
  text-align: center;
}
.dq-pipe-arrow[data-v-0f25632e] {
  flex-shrink: 0;
  font-size: 8px;
  color: var(--text-secondary);
  opacity: 0.5;
}
.dq-pipe-arrow--in[data-v-0f25632e] {
  margin-left: auto;
}
.dq-blocks[data-v-0f25632e] {
  display: flex;
  gap: 2px;
  flex-wrap: wrap;
  align-items: center;
}
.dq-block[data-v-0f25632e] {
  width: 8px;
  height: 14px;
  border-radius: 2px;
  flex-shrink: 0;
  transition: background 0.2s;
}
.dq-block--normal[data-v-0f25632e] {
  background: var(--color-indigo);
}
.dq-block--high[data-v-0f25632e] {
  background: var(--color-danger);
  animation: dq-pulse-0f25632e 1s ease-in-out infinite alternate;
}
@keyframes dq-pulse-0f25632e {
from { opacity: 0.7;
}
to { opacity: 1;
}
}
.dq-count[data-v-0f25632e] {
  flex-shrink: 0;
  font-size: 0.75rem;
  color: var(--text-primary);
  min-width: 55px;
  text-align: right;
  white-space: nowrap;
}
.dq-count-max[data-v-0f25632e] {
  color: var(--text-secondary);
}
.dq-label-high[data-v-0f25632e] {
  color: var(--color-danger);
  font-weight: 600;
  margin-left: 3px;
  font-size: 0.7rem;
}

.companies-config[data-v-27d87b09] {
  /* 위 여백 0 — 서브탭(TabNav variant=sub)이 자체 margin 으로 간격을 소유 */
  padding: 0;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

/* ListScreen 이 남는 공간을 모두 차지하고 내부 스크롤 */
.companies-config[data-v-27d87b09] .list-screen {
  flex: 1;
  min-height: 0;
  /* 루트 상단 여백은 서브탭이 소유하므로 0 */
  padding-top: 0;
}

/* 마스터데이터 본문 — 트리가 자체 스크롤되도록 flex 컬럼 */
.masterdata-body[data-v-27d87b09] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

/* 트리 뷰 */
.tree-loading[data-v-27d87b09], .tree-empty[data-v-27d87b09] {
  padding: var(--space-8);
  text-align: center;
  color: var(--text-secondary);
}
/* 트리 컬럼 폭 — 헤더 행과 데이터 행이 공유 (테이블처럼 세로 정렬) */
.tree-col--count[data-v-27d87b09] {
  /* 회사 수 — 폭 고정·우측 정렬(숫자 정렬 표준) */
  flex-shrink: 0;
  width: 6rem;
  text-align: right;
}
.tree-col--actions[data-v-27d87b09] {
  /* 작업 — 레벨별 버튼 수가 달라도(L1·L2 3개 / L3 2개) 3버튼 폭으로 고정 */
  flex-shrink: 0;
  width: calc(3 * var(--control-height-sm) + 2 * var(--space-1));
}
.tree-col--name[data-v-27d87b09] {
  /* 이름 — 남는 폭을 모두 차지. 들여쓰기(depth)는 여기에 패딩으로 부여 */
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

/* 컬럼 헤더 행 — 본문 스크롤 시 위에 고정 */
.tree-header[data-v-27d87b09] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  background: var(--surface-color-secondary);
  border-bottom: 1px solid var(--border-color);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  flex-shrink: 0;
}
.tree-header .tree-col--count[data-v-27d87b09] { text-align: right;
}
.tree-header .tree-col--actions[data-v-27d87b09] { text-align: center;
}
.tree[data-v-27d87b09] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}
.tree-node[data-v-27d87b09] {
  border-bottom: 1px solid var(--border-color);
  /* flex 컨테이너(.tree) 안에서 줄어들지 않게 — 줄어들면 행이 잘리고 스크롤이 안 됨 */
  flex-shrink: 0;
}
.tree-node[data-v-27d87b09]:last-child {
  border-bottom: none;
}
.tree-children[data-v-27d87b09] {
  border-top: 1px solid var(--border-color);
}
.tree-children .tree-node[data-v-27d87b09] {
  border-bottom: 1px solid var(--border-color);
}
.tree-row[data-v-27d87b09] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  cursor: default;
  transition: background var(--transition-fast);
}
.tree-row[data-v-27d87b09]:hover {
  background: var(--surface-hover);
}
.tree-row--l1[data-v-27d87b09] {
  cursor: pointer;
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-md);
}
.tree-row--l2[data-v-27d87b09] {
  cursor: pointer;
  font-weight: var(--font-weight-medium);
  font-size: var(--font-sm);
}
.tree-row--l3[data-v-27d87b09] {
  font-size: var(--font-sm);
}
/* 들여쓰기(depth) 는 이름 컬럼에만 — 회사 수/작업 컬럼은 깊이와 무관하게 같은 x 에 정렬 */
.tree-row--l2 .tree-col--name[data-v-27d87b09] { padding-left: 2rem;
}
.tree-row--l3 .tree-col--name[data-v-27d87b09] { padding-left: 4rem;
}
.tree-row--empty[data-v-27d87b09] {
  opacity: 0.5;
}
.tree-toggle[data-v-27d87b09] {
  width: 16px;
  text-align: center;
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.tree-leaf-spacer[data-v-27d87b09] {
  width: 16px;
  flex-shrink: 0;
}
.tree-icon[data-v-27d87b09] {
  font-size: var(--font-sm);
  color: var(--text-secondary);
  flex-shrink: 0;
  width: 16px;
  text-align: center;
}
.tree-row--l1 .tree-icon[data-v-27d87b09] { color: var(--primary-color);
}
.tree-row--l2 .tree-icon[data-v-27d87b09] { color: var(--text-secondary);
}
.tree-row--l3 .tree-icon[data-v-27d87b09] { color: var(--text-tertiary); font-size: var(--font-xs);
}
.tree-label[data-v-27d87b09] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tree-abbr[data-v-27d87b09] {
  color: var(--text-tertiary);
  font-size: var(--font-xs);
  flex-shrink: 0;
}
.tree-meta[data-v-27d87b09] {
  color: var(--text-tertiary);
  font-size: var(--font-xs);
}
.tree-actions[data-v-27d87b09] {
  display: flex;
  gap: var(--space-1);
  justify-content: center;
}

/* 회사 셀 (테이블형) */
.company-cell[data-v-27d87b09] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.company-favicon[data-v-27d87b09] {
  width: 16px;
  height: 16px;
  border-radius: var(--radius-xs);
  object-fit: contain;
  flex-shrink: 0;
}

/* 회사 카드 (카드형) */
.company-card[data-v-27d87b09] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
  width: 100%;
}
.company-card__title[data-v-27d87b09] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.company-card__name[data-v-27d87b09] {
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  word-break: break-word;
}
.company-card__meta[data-v-27d87b09] {
  display: flex;
  align-items: center;
  gap: var(--space-1) var(--space-3);
  flex-wrap: wrap;
}
.company-card__metaitem[data-v-27d87b09] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.company-card__actions[data-v-27d87b09] {
  display: flex;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-top: var(--space-1);
}

/* 배지 */
.badge[data-v-27d87b09] {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  line-height: 1.4;
}
.badge--success[data-v-27d87b09] { background: var(--surface-success-soft); color: var(--color-success);
}
.badge--muted[data-v-27d87b09] { background: var(--surface-muted); color: var(--text-secondary);
}
.text-muted[data-v-27d87b09] { color: var(--text-tertiary); font-size: var(--font-sm);
}

/* 액션 — icon-only AppButton 묶음 */
.action-btns[data-v-27d87b09] {
  display: flex;
  gap: var(--space-1);
  justify-content: center;
}

/* 처리 중 오버레이 */
.modal-overlay[data-v-27d87b09] {
  position: fixed; inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex; align-items: center; justify-content: center;
  z-index: var(--z-modal, 9999);
}
.processing-overlay[data-v-27d87b09] {
  z-index: var(--z-toast, 10000);
}
.processing-card[data-v-27d87b09] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-8) var(--space-12);
  background: var(--surface-color);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}
.processing-icon[data-v-27d87b09] {
  font-size: var(--font-2xl);
  color: var(--primary-color);
}
.processing-msg[data-v-27d87b09] {
  margin: 0;
  font-size: var(--font-md);
  color: var(--text-primary);
  text-align: center;
}

/* 폼 */
.form-group[data-v-27d87b09] {
  margin-bottom: var(--space-3);
  flex: 1;
}
.form-group label[data-v-27d87b09] {
  display: block;
  font-size: var(--font-sm);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-1);
}
.form-input[data-v-27d87b09] {
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--border-color);
  background: var(--background-color);
  color: var(--text-primary);
  border-radius: var(--radius-md);
  font-size: var(--font-md);
  height: var(--control-height-md, 36px);
  box-sizing: border-box;
}
.form-input[data-v-27d87b09]:focus {
  outline: none;
  border-color: var(--primary-color);
}
.password-input[data-v-27d87b09] {
  margin-top: var(--space-3);
}
.form-row[data-v-27d87b09] {
  display: flex;
  gap: var(--space-3);
}
.form-error[data-v-27d87b09] {
  color: var(--color-danger);
  font-size: var(--font-sm);
  display: block;
  margin-top: var(--space-1);
}
.checkbox-label[data-v-27d87b09] {
  display: flex !important;
  align-items: center;
  gap: var(--space-2);
  cursor: pointer;
}
.confirm-msg[data-v-27d87b09] {
  margin: 0;
  font-size: var(--font-md);
  color: var(--text-primary);
  line-height: 1.6;
}
/* 스케줄 트리거 — AppButton 의 align="between" + icon-end 로 폼 필드형 모양.
   여기선 폼 필드 느낌의 여백·글자 굵기만 보탠다. */
.schedule-btn[data-v-27d87b09] {
  margin-top: var(--space-1);
  font-weight: var(--font-weight-regular);
}
@media (max-width: 768px) {
.form-row[data-v-27d87b09] {
    flex-direction: column;
    gap: 0;
}
}

.form-group[data-v-41f37550] {
  margin-bottom: var(--space-3);
  flex: 1;
}
.form-group--narrow[data-v-41f37550] { max-width: 120px;
}
.form-group label[data-v-41f37550] {
  display: block;
  font-size: var(--font-sm);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-1);
}
.code-mono[data-v-41f37550] {
  font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: var(--font-sm);
}
.form-hint[data-v-41f37550] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  margin-top: var(--space-1);
  display: block;
}
.form-row[data-v-41f37550] {
  display: flex;
  gap: var(--space-3);
}
.form-error[data-v-41f37550] {
  color: var(--color-danger);
  font-size: var(--font-sm);
  display: block;
  margin-bottom: var(--space-2);
}
.info-notice[data-v-41f37550] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0 0 var(--space-2);
  padding: var(--space-2) var(--space-3);
  background: var(--surface-muted);
  border-left: 3px solid var(--text-tertiary);
  border-radius: var(--radius-xs);
  font-size: var(--font-sm);
  color: var(--text-secondary);
}
.info-notice i[data-v-41f37550] {
  color: var(--text-tertiary);
  flex-shrink: 0;
}

/* 컬러 피커: 한 줄 */
.color-inline[data-v-41f37550] {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: nowrap;
}
.color-swatch[data-v-41f37550] {
  width: 20px;
  height: 20px;
  min-width: 20px;
  border-radius: var(--radius-full);
  border: 2px solid transparent;
  flex-shrink: 0;
}
.color-swatch[data-v-41f37550]:hover { transform: scale(1.2);
}
.color-swatch--selected[data-v-41f37550] {
  border-color: var(--text-primary);
  box-shadow: 0 0 0 1px var(--surface-color), 0 0 0 2.5px var(--text-primary);
}
.color-divider[data-v-41f37550] {
  width: 1px;
  height: 16px;
  background: var(--border-color);
  margin: 0 2px;
  flex-shrink: 0;
}
.color-preview[data-v-41f37550] {
  width: 20px;
  height: 20px;
  border-radius: var(--radius-xs);
  border: 1px solid var(--border-color);
  flex-shrink: 0;
}
.form-input--hex[data-v-41f37550] {
  width: 80px;
  font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: var(--font-xs);
  height: var(--control-height-sm);
  padding: var(--space-1) var(--space-2);
}
@media (max-width: 768px) {
.form-row[data-v-41f37550] {
    flex-direction: column;
    gap: 0;
}
.form-group--narrow[data-v-41f37550] { max-width: none;
}
}

.form-error[data-v-f17140b1] {
  color: var(--color-danger);
  font-size: var(--font-sm);
  display: block;
  margin-bottom: var(--space-2);
}
.bulk-selected-list[data-v-f17140b1] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  margin-bottom: var(--space-3);
}
.bulk-tag[data-v-f17140b1] {
  display: inline-block;
  padding: var(--space-1) var(--space-2);
  background: var(--surface-muted);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-xs);
  font-size: var(--font-xs);
  color: var(--text-secondary);
}
.form-group[data-v-f17140b1] {
  margin-bottom: var(--space-3);
}
.form-group label[data-v-f17140b1] {
  display: block;
  font-size: var(--font-sm);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-1);
}
.form-hint[data-v-f17140b1] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  margin-top: var(--space-1);
  display: block;
}

.action-btns[data-v-23f665dd] {
  display: flex;
  gap: var(--space-1);
  justify-content: center;
}
.display-name[data-v-23f665dd] {
  color: var(--primary-color);
  font-weight: var(--font-weight-medium);
}

.confirm-msg[data-v-b0a9dcf2] {
  margin: 0;
  font-size: var(--font-base);
  color: var(--text-primary);
  line-height: 1.6;
}
.confirm-warn[data-v-b0a9dcf2] {
  margin-top: var(--space-3);
  padding: var(--space-2) var(--space-3);
  background: var(--surface-danger-soft);
  border: 1px solid var(--color-danger);
  border-radius: var(--radius-xs);
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  color: var(--color-danger);
  font-size: var(--font-sm);
}
.confirm-warn p[data-v-b0a9dcf2] { margin: 0 0 var(--space-1) 0;
}
.confirm-warn p[data-v-b0a9dcf2]:last-child { margin: 0; opacity: 0.85;
}

.action-btns[data-v-9e6d88ae] {
  display: flex;
  gap: var(--space-1);
  justify-content: center;
}

.action-btns[data-v-69d44697] {
  display: flex;
  gap: var(--space-1);
  justify-content: center;
}
.text-muted[data-v-69d44697] { color: var(--text-tertiary);
}
.text-sm[data-v-69d44697] { font-size: var(--font-sm);
}
.text-xs[data-v-69d44697] { font-size: var(--font-xs);
}
.nowrap[data-v-69d44697] { white-space: nowrap;
}
.col-desc[data-v-69d44697] {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 색상 도트 */
.color-dot[data-v-69d44697] {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: var(--radius-full);
  border: 1px solid var(--border-color);
  vertical-align: middle;
}

/* 콘텐츠태그 코드 */
.tag-code[data-v-69d44697] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}
.system-lock[data-v-69d44697] {
  color: var(--text-tertiary);
  font-size: var(--font-xs);
}

/* who/when */
.who-when[data-v-69d44697] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  white-space: nowrap;
}

/* 토글 스위치 */
.toggle-switch[data-v-69d44697] {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 20px;
  cursor: pointer;
}
.toggle-switch input[data-v-69d44697] { opacity: 0; width: 0; height: 0;
}
.toggle-slider[data-v-69d44697] {
  position: absolute;
  inset: 0;
  background: var(--text-tertiary);
  border-radius: var(--radius-full);
  transition: background var(--transition-base);
}
.toggle-slider[data-v-69d44697]::before {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  left: 2px;
  bottom: 2px;
  background: var(--color-white);
  border-radius: var(--radius-full);
  transition: transform var(--transition-base);
}
.toggle-switch input:checked + .toggle-slider[data-v-69d44697] { background: var(--primary-color);
}
.toggle-switch input:checked + .toggle-slider[data-v-69d44697]::before { transform: translateX(16px);
}

.code-mgmt[data-v-82b77c5b] {
  /* 위 여백 0 — 서브탭(TabNav variant=sub)이 자체 margin 으로 간격을 소유 */
  padding: 0;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

/* 서브탭 컨텐츠 — 내부 ListScreen 이 남는 공간을 채우고 자체 스크롤 */
.section[data-v-82b77c5b] {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

/* ListScreen 루트 상단 여백은 서브탭이 소유하므로 0 */
.section[data-v-82b77c5b] .list-screen {
  flex: 1;
  min-height: 0;
  padding-top: 0;
}

.form-group[data-v-164029f1] {
  margin-bottom: var(--space-3);
}
.form-group label[data-v-164029f1] {
  display: block;
  font-size: var(--font-sm);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-1);
}
.form-row[data-v-164029f1] {
  display: flex;
  gap: var(--space-3);
}
.form-row .form-group[data-v-164029f1] {
  flex: 1;
}
.form-error[data-v-164029f1] {
  color: var(--color-danger);
  font-size: var(--font-sm);
  display: block;
  margin-bottom: var(--space-2);
}
@media (max-width: 768px) {
.form-row[data-v-164029f1] {
    flex-direction: column;
    gap: 0;
}
}

.confirm-msg[data-v-551cde54] {
  margin: 0;
  font-size: var(--font-base);
  color: var(--text-primary);
  line-height: 1.6;
}
.confirm-warn[data-v-551cde54] {
  margin: var(--space-3) 0 0;
  padding: var(--space-2) var(--space-3);
  background: var(--surface-danger-soft);
  border: 1px solid var(--color-danger);
  border-radius: var(--radius-xs);
  color: var(--color-danger);
  font-size: var(--font-sm);
}

.action-btns[data-v-c38b078a] {
  display: flex;
  gap: var(--space-1);
  justify-content: center;
}
.code-mono[data-v-c38b078a] {
  font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: var(--font-sm);
  color: var(--text-primary);
}
.col-desc[data-v-c38b078a] {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.badge[data-v-c38b078a] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  line-height: 1.4;
}
.badge--success[data-v-c38b078a] { background: var(--surface-success-soft); color: var(--color-success);
}
.badge--muted[data-v-c38b078a] { background: var(--surface-muted); color: var(--text-secondary);
}
.badge--info[data-v-c38b078a] { background: var(--surface-info-soft); color: var(--color-info);
}

.form-group[data-v-82712344] {
  margin-bottom: var(--space-3);
}
.form-group label[data-v-82712344] {
  display: block;
  font-size: var(--font-sm);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-1);
}
.form-error[data-v-82712344] {
  color: var(--color-danger);
  font-size: var(--font-sm);
  display: block;
  margin-bottom: var(--space-2);
}

.empty-text[data-v-01eac62d] {
  text-align: center;
  color: var(--text-secondary);
  padding: var(--space-6);
}
.transfer-container[data-v-01eac62d] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: var(--space-3);
  align-items: stretch;
}
.transfer-column[data-v-01eac62d] {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.transfer-column__header[data-v-01eac62d] {
  padding: var(--space-2) var(--space-3);
  background: var(--background-color);
  border-bottom: 1px solid var(--border-color);
}
.transfer-column__title[data-v-01eac62d] {
  font-size: var(--font-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--text-secondary);
}
.transfer-column__search[data-v-01eac62d] {
  position: relative;
  padding: var(--space-2);
  border-bottom: 1px solid var(--border-color);
}
.transfer-search-icon[data-v-01eac62d] {
  position: absolute;
  left: var(--space-3);
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  pointer-events: none;
}
.transfer-search-clear[data-v-01eac62d] {
  position: absolute;
  right: var(--space-2);
  top: 50%;
  transform: translateY(-50%);
}
.transfer-search-input[data-v-01eac62d] {
  width: 100%;
  padding: var(--space-1) var(--space-6) var(--space-1) var(--space-6);
  box-sizing: border-box;
}
.transfer-column__body[data-v-01eac62d] {
  flex: 1;
  overflow-y: auto;
  max-height: 320px;
  min-height: 200px;
}
.transfer-list[data-v-01eac62d] {
  display: flex;
  flex-direction: column;
}
.transfer-item[data-v-01eac62d] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1) var(--space-3);
  cursor: pointer;
  transition: background var(--transition-fast);
  font-size: var(--font-sm);
}
.transfer-item[data-v-01eac62d]:hover { background: var(--hover-color);
}
.transfer-item--selected[data-v-01eac62d] {
  background: var(--surface-muted);
  border-left: 2px solid var(--primary-color);
}
.transfer-item code[data-v-01eac62d] {
  font-size: var(--font-xs);
  background: var(--background-color);
  padding: 2px var(--space-1);
  border-radius: var(--radius-xs);
  color: var(--text-primary);
  white-space: nowrap;
}
.transfer-item__name[data-v-01eac62d] {
  color: var(--text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.transfer-empty[data-v-01eac62d] {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  min-height: 100px;
  color: var(--text-tertiary);
  font-size: var(--font-sm);
}
.transfer-actions[data-v-01eac62d] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  padding: 0 var(--space-1);
}
@media (max-width: 768px) {
.transfer-container[data-v-01eac62d] {
    grid-template-columns: 1fr;
}
.transfer-actions[data-v-01eac62d] {
    flex-direction: row;
    justify-content: center;
    padding: var(--space-1) 0;
}
}

.action-btns[data-v-3bbd2ad3] {
  display: flex;
  gap: var(--space-1);
  justify-content: center;
}
.code-mono[data-v-3bbd2ad3] {
  font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: var(--font-sm);
  color: var(--text-primary);
}
.col-desc[data-v-3bbd2ad3] {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.badge[data-v-3bbd2ad3] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  line-height: 1.4;
}
.badge--success[data-v-3bbd2ad3] { background: var(--surface-success-soft); color: var(--color-success);
}
.badge--muted[data-v-3bbd2ad3] { background: var(--surface-muted); color: var(--text-secondary);
}
.badge--info[data-v-3bbd2ad3] { background: var(--surface-info-soft); color: var(--color-info);
}
.badge--warning[data-v-3bbd2ad3] { background: var(--surface-warning-soft); color: var(--color-warning);
}

.permissions-config[data-v-a7d84c8f] {
  /* 위 여백 0 — 서브탭(TabNav variant=sub)이 자체 margin 으로 간격을 소유 */
  padding: 0;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

/* 서브탭 컨텐츠 — 내부 ListScreen 이 남는 공간을 채우고 자체 스크롤 */
.section[data-v-a7d84c8f] {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

/* ListScreen 루트 상단 여백은 서브탭이 소유하므로 0 */
.section[data-v-a7d84c8f] .list-screen {
  flex: 1;
  min-height: 0;
  padding-top: 0;
}

.users-config[data-v-dd25459d] {
  /* 위 여백 0 — 서브탭(TabNav variant=sub)이 자체 margin 으로 간격을 소유 */
  padding: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ListScreen 이 자체 padding/max-width 를 소유 — 여기선 flex 확장만 */
.users-config[data-v-dd25459d] .list-screen {
  padding-top: 0;
}

/* ── 사용자 셀 (아바타 + 이름) ── */
.user-cell[data-v-dd25459d] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.user-cell span[data-v-dd25459d] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.user-avatar[data-v-dd25459d] {
  width: 24px;
  height: 24px;
  border-radius: var(--radius-full);
  flex-shrink: 0;
}
.user-avatar--image[data-v-dd25459d] {
  background-size: cover;
  background-position: center;
}
.user-avatar--initials[data-v-dd25459d] {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--primary-color);
  color: var(--color-white);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
}

/* ── 역할 배지 — 한 줄로 표시, 넘치면 +N 으로 축약 ── */
.role-badges[data-v-dd25459d] {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--space-1);
  overflow: hidden;
  min-width: 0;
}
.role-badges--card[data-v-dd25459d] {
  flex-wrap: wrap;
}
.badge[data-v-dd25459d] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.15rem var(--space-2);
  border-radius: var(--radius-full);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  line-height: 1.4;
  white-space: nowrap;
  flex-shrink: 0;
}
.badge--role[data-v-dd25459d] { background: var(--surface-info-soft); color: var(--color-info);
}
.badge--admin[data-v-dd25459d] { background: var(--surface-danger-soft); color: var(--color-danger); font-weight: var(--font-weight-semibold);
}
.badge--more[data-v-dd25459d] { background: var(--surface-color-secondary); color: var(--text-secondary);
}

/* ── 활성 상태 토글 (AppButton ghost + pill 룩) ── */
.status-toggle[data-v-dd25459d] {
  height: var(--space-6);
  min-width: 44px;
  padding: 0 var(--space-2);
  border-radius: var(--radius-full);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
}
.status-toggle--on[data-v-dd25459d] {
  background: var(--surface-success-soft);
  color: var(--color-success);
}
.status-toggle--off[data-v-dd25459d] {
  background: var(--surface-color-secondary);
  color: var(--text-secondary);
}

/* ── 메타편집 경험치 — 작업 / 검토 ── */
.meta-xp[data-v-dd25459d] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-variant-numeric: tabular-nums;
  font-size: var(--font-sm);
}
.meta-xp__label[data-v-dd25459d] { color: var(--text-tertiary); margin-right: var(--space-1);
}
.meta-xp__authored[data-v-dd25459d] { color: var(--text-primary); font-weight: var(--font-weight-semibold);
}
.meta-xp__sep[data-v-dd25459d] { color: var(--text-tertiary);
}
.meta-xp__reviewed[data-v-dd25459d] { color: var(--text-secondary);
}
.text-sm[data-v-dd25459d] { font-size: var(--font-sm);
}
.action-btns[data-v-dd25459d] { display: flex; gap: var(--space-1); justify-content: center;
}

/* ── 카드형 본문 ── */
.user-card[data-v-dd25459d] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  width: 100%;
  min-width: 0;
}
.user-card__head[data-v-dd25459d] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.user-card__id[data-v-dd25459d] {
  display: flex;
  align-items: baseline;
  gap: var(--space-1);
  min-width: 0;
  flex: 1;
}
.user-card__name[data-v-dd25459d] {
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.user-card__uid[data-v-dd25459d] {
  flex-shrink: 0;
  font-size: var(--font-sm);
  color: var(--text-secondary);
  white-space: nowrap;
}
.user-card__email[data-v-dd25459d] {
  font-size: var(--font-sm);
  color: var(--text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.user-card__foot[data-v-dd25459d] {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.user-card__foot .meta-xp[data-v-dd25459d] { margin-right: auto;
}
.user-card__login[data-v-dd25459d] {
  font-size: var(--font-sm);
  color: var(--text-tertiary);
}

/* ── 폼 ── */
.form-group[data-v-dd25459d] { margin-bottom: var(--space-3);
}
.form-group label[data-v-dd25459d] {
  display: block;
  margin-bottom: var(--space-1);
  font-size: var(--font-sm);
  font-weight: var(--font-weight-medium);
  color: var(--text-primary);
}
.form-input[data-v-dd25459d] {
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--border-color);
  background: var(--background-color);
  color: var(--text-primary);
  border-radius: var(--radius-md);
  font-size: var(--font-md);
  box-sizing: border-box;
}
.form-input[data-v-dd25459d]:focus { outline: none; border-color: var(--primary-color);
}
.form-hint[data-v-dd25459d] { color: var(--text-tertiary); font-size: var(--font-xs);
}
.form-error[data-v-dd25459d] { color: var(--color-danger); font-size: var(--font-xs);
}
.confirm-msg[data-v-dd25459d] { margin: 0; font-size: var(--font-md); color: var(--text-primary); line-height: 1.6;
}
.loading-text[data-v-dd25459d], .empty-text[data-v-dd25459d] {
  text-align: center;
  color: var(--text-secondary);
  padding: var(--space-8);
}

/* ── Dual-list Transfer ── */
.transfer-container[data-v-dd25459d] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: var(--space-3);
  align-items: stretch;
}
.transfer-column[data-v-dd25459d] {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.transfer-column__header[data-v-dd25459d] {
  padding: var(--space-2) var(--space-3);
  background: var(--background-color);
  border-bottom: 1px solid var(--border-color);
}
.transfer-column__title[data-v-dd25459d] {
  font-size: var(--font-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--text-secondary);
}
.transfer-column__search[data-v-dd25459d] {
  position: relative;
  padding: var(--space-2);
  border-bottom: 1px solid var(--border-color);
}
.transfer-search-icon[data-v-dd25459d] {
  position: absolute;
  left: var(--space-3);
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  pointer-events: none;
}
.transfer-search-clear[data-v-dd25459d] {
  position: absolute;
  right: var(--space-3);
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  cursor: pointer;
}
.transfer-search-input[data-v-dd25459d] {
  /* 외형은 AppInput 토큰이 담당 — 아이콘 공간 위한 레이아웃만 유지 */
  width: 100%;
  padding-left: var(--space-6);
  padding-right: var(--space-5);
}
.transfer-column__body[data-v-dd25459d] {
  flex: 1;
  overflow-y: auto;
  max-height: 320px;
  min-height: 200px;
}
.transfer-list[data-v-dd25459d] {
  display: flex;
  flex-direction: column;
}
.transfer-item[data-v-dd25459d] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1) var(--space-3);
  cursor: pointer;
  transition: background var(--transition-fast);
  font-size: var(--font-sm);
}
.transfer-item[data-v-dd25459d]:hover { background: var(--surface-hover);
}
.transfer-item--selected[data-v-dd25459d] {
  background: var(--surface-active);
  border-left: 2px solid var(--primary-color);
}
.transfer-item__label[data-v-dd25459d] {
  font-weight: var(--font-weight-medium);
  color: var(--text-primary);
}
.transfer-item code[data-v-dd25459d] {
  font-size: var(--font-xs);
  background: var(--background-color);
  padding: 0.1rem var(--space-1);
  border-radius: var(--radius-sm);
  color: var(--text-secondary);
  white-space: nowrap;
}
.transfer-empty[data-v-dd25459d] {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  min-height: 100px;
  color: var(--text-tertiary);
  font-size: var(--font-sm);
}
.transfer-actions[data-v-dd25459d] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  padding: 0 var(--space-1);
}

/* ── 벌크 역할 선택 모달 ── */
.bulk-role-search[data-v-dd25459d] {
  position: relative;
  margin-bottom: var(--space-3);
}
.bulk-role-list[data-v-dd25459d] {
  max-height: 320px;
  overflow-y: auto;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
}
.bulk-role-item[data-v-dd25459d] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  cursor: pointer;
  font-size: var(--font-sm);
  transition: background var(--transition-fast);
}
.bulk-role-item[data-v-dd25459d]:hover { background: var(--surface-hover);
}
.bulk-role-item--checked[data-v-dd25459d] { background: var(--surface-active);
}
.bulk-role-item[data-v-dd25459d]:not(:last-child) { border-bottom: 1px solid var(--border-color);
}
.bulk-role-name[data-v-dd25459d] { font-weight: var(--font-weight-medium); color: var(--text-primary);
}
.bulk-role-item code[data-v-dd25459d] {
  font-size: var(--font-xs);
  background: var(--background-color);
  padding: 0.1rem var(--space-1);
  border-radius: var(--radius-sm);
  color: var(--text-secondary);
  margin-left: auto;
}

/* ── 좁은 화면: 역할 편집 모달 3열 → 1열 세로 스택 ── */
@media (max-width: 768px) {
.transfer-container[data-v-dd25459d] {
    grid-template-columns: 1fr;
}
.transfer-actions[data-v-dd25459d] {
    flex-direction: row;
    justify-content: center;
    padding: var(--space-1) 0;
    gap: var(--space-2);
}
  /* 좌우 화살표 → 상하 화살표로 회전 */
.transfer-arrow-add[data-v-dd25459d] { transform: rotate(90deg);
}
.transfer-arrow-remove[data-v-dd25459d] { transform: rotate(-90deg);
}
.transfer-column__body[data-v-dd25459d] {
    max-height: 140px;
    min-height: 70px;
}
}

.parsing-config[data-v-c3081c23] {
  /* 위 여백 0 — 서브탭(TabNav variant=sub)이 자체 margin 으로 간격을 소유 */
  padding: 0 var(--page-pad-x) 1.5rem;
  max-width: 1400px;
  margin: 0 auto;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.section[data-v-c3081c23] {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}
.section[data-v-c3081c23] .data-table-wrapper {
  flex: 1;
  min-height: 0;
}

.tree-node[data-v-bc96098f] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  /* 행 구분선은 border-top — 마지막 행이 그룹 박스 하단 테두리와 겹쳐 두꺼워 보이던 문제 해소 */
  border-top: 1px solid var(--border-color);
  transition: background 0.1s;
}
.tree-node[data-v-bc96098f]:hover {
  background: var(--hover-color);
}

/* 우측 클러스터: 순서 변경 + 액션 (메뉴·카테고리 모두 우측 정렬로 통일) */
.tree-node__right[data-v-bc96098f] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-left: auto;
  flex-shrink: 0;
}
.tree-node__reorder[data-v-bc96098f] {
  display: flex;
  gap: 1px;
  flex-shrink: 0;
}
.tree-node__toggle[data-v-bc96098f] {
  flex-shrink: 0;
}
.tree-node__toggle--empty[data-v-bc96098f] {
  display: inline-block;
  width: var(--control-height-sm);
  height: var(--control-height-sm);
}
.tree-node__icon[data-v-bc96098f] {
  font-size: 1.25rem;
  color: var(--text-secondary);
  width: 24px;
  text-align: center;
  flex-shrink: 0;
  overflow: hidden;
}
.tree-node__icon--empty[data-v-bc96098f] {
  width: 24px;
}
.tree-node__name[data-v-bc96098f] {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-primary);
  white-space: nowrap;
}
.tree-node__url[data-v-bc96098f] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


/* 배지 */
.badge[data-v-bc96098f] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  padding: 0.1rem 0.4rem;
  border-radius: 10px;
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1.4;
  flex-shrink: 0;
}
.badge i[data-v-bc96098f] { font-size: 0.5625rem;
}
.badge--muted[data-v-bc96098f] { background: var(--surface-muted); color: var(--text-secondary);
}
.badge--info[data-v-bc96098f] { background: color-mix(in srgb, var(--color-info) 15%, transparent); color: var(--color-info);
}

/* 액션 버튼 */
.tree-node__actions[data-v-bc96098f] {
  display: flex;
  gap: 0.25rem;
  flex-shrink: 0;
}

.menu-config__body[data-v-01d49544] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

/* 상태 */
.loading-text[data-v-01d49544] {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-8);
  color: var(--text-secondary);
  font-size: var(--font-xl);
}
.empty-text[data-v-01d49544] {
  text-align: center;
  color: var(--text-secondary);
  padding: var(--space-8);
  font-size: var(--font-base);
}

/* 트리 */
.menu-tree[data-v-01d49544] {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

/* 카테고리 그룹 */
.menu-group[data-v-01d49544] {
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--surface-color);
  /* flex 컨테이너(.menu-tree) 안에서 줄어들지 않게 — 줄어들면 행이 잘리고 스크롤이 안 됨 */
  flex-shrink: 0;
}
.group-header[data-v-01d49544] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  background: var(--surface-color-secondary);
  /* 구분선은 첫 메뉴 행의 border-top 이 담당 — 헤더 자체 테두리는 두지 않아 겹침 방지 */
}
.group-header__label[data-v-01d49544] {
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.group-header__count[data-v-01d49544] {
  font-size: var(--font-sm);
  color: var(--text-secondary);
}
.group-header__actions[data-v-01d49544] {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  margin-left: auto;
}
.group-body[data-v-01d49544] {
  display: flex;
  flex-direction: column;
}
.group-empty[data-v-01d49544] {
  margin: 0;
  padding: var(--space-4) var(--space-3);
  color: var(--text-secondary);
  font-size: var(--font-sm);
  text-align: center;
}

/* 모달 */
.modal-overlay[data-v-01d49544] {
  position: fixed; inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex; align-items: center; justify-content: center;
  z-index: var(--z-modal, 9999);
  animation: fadeIn-01d49544 0.15s ease;
}
.modal[data-v-01d49544] {
  background: var(--surface-color);
  border-radius: var(--radius-lg);
  width: 90%;
  max-width: 520px;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-modal);
  animation: slideUp-01d49544 0.2s ease;
}
.modal--wide[data-v-01d49544] { max-width: 640px;
}
.modal--sm[data-v-01d49544] { max-width: 420px;
}
.modal-header[data-v-01d49544] {
  display: flex; justify-content: space-between; align-items: center;
  padding: var(--space-4) var(--space-5);
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}
.modal-header h4[data-v-01d49544] { margin: 0; font-size: var(--font-md); color: var(--text-primary);
}
.modal-body[data-v-01d49544] {
  padding: var(--space-5);
  overflow-y: auto;
  flex: 1;
}
.modal-body p[data-v-01d49544] { margin: 0 0 var(--space-2); color: var(--text-primary); font-size: var(--font-base);
}
.modal-footer[data-v-01d49544] {
  display: flex; justify-content: flex-end; gap: var(--space-2);
  padding: var(--space-3) var(--space-5);
  border-top: 1px solid var(--border-color);
  flex-shrink: 0;
}

/* 폼 */
.form-group[data-v-01d49544] { margin-bottom: var(--space-3);
}
.form-group label[data-v-01d49544] { display: block; margin-bottom: var(--space-1); font-size: var(--font-sm); font-weight: var(--font-weight-medium); color: var(--text-primary);
}
.form-input[data-v-01d49544] {
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--border-color);
  background: var(--background-color);
  color: var(--text-primary);
  border-radius: var(--radius-md);
  font-size: var(--font-base);
  box-sizing: border-box;
}
.form-input[data-v-01d49544]:focus { outline: none; border-color: var(--primary-color);
}
.form-row[data-v-01d49544] { display: flex; gap: var(--space-3);
}
.form-row .form-group[data-v-01d49544] { flex: 1;
}
.form-checks[data-v-01d49544] { gap: var(--space-6); margin-bottom: var(--space-3);
}
.form-check[data-v-01d49544] { display: flex; align-items: center; gap: var(--space-2); cursor: pointer; font-size: var(--font-sm); color: var(--text-primary);
}
.form-error[data-v-01d49544] { color: var(--color-danger); font-size: var(--font-xs);
}
.form-error--top[data-v-01d49544] { display: block; margin-bottom: var(--space-3);
}
.form-hint[data-v-01d49544] { font-size: var(--font-xs); color: var(--text-secondary); margin-bottom: var(--space-2);
}

/* 폼 섹션 */
.form-section[data-v-01d49544] {
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border-color);
}
.form-section__title[data-v-01d49544] {
  margin: 0 0 var(--space-3);
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
}

/* 권한 체크리스트 */
.perm-checklist__items[data-v-01d49544] {
  max-height: 200px;
  overflow-y: auto;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
}
.perm-checklist__item[data-v-01d49544] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  cursor: pointer;
  font-size: var(--font-sm);
  transition: background 0.1s;
}
.perm-checklist__item[data-v-01d49544]:hover { background: var(--surface-hover);
}
.perm-checklist__item code[data-v-01d49544] {
  font-size: var(--font-xs);
  background: var(--background-color);
  padding: 0.1rem 0.3rem;
  border-radius: var(--radius-sm);
  color: var(--text-primary);
  white-space: nowrap;
}
.perm-checklist__item span[data-v-01d49544] {
  color: var(--text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@keyframes fadeIn-01d49544 {
from { opacity: 0;
}
to { opacity: 1;
}
}
@keyframes slideUp-01d49544 {
from { opacity: 0; transform: translateY(20px);
}
to { opacity: 1; transform: translateY(0);
}
}
@media (max-width: 768px) {
.form-row[data-v-01d49544] { flex-direction: column; gap: 0;
}
.modal[data-v-01d49544] { width: 95%;
}
.group-header[data-v-01d49544] { flex-wrap: wrap;
}
.group-header__actions[data-v-01d49544] { margin-left: 0;
}
}

.detail__grid[data-v-2eccdb52] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}
.detail__item label[data-v-2eccdb52] {
  display: block;
  font-size: var(--font-xs);
  color: var(--text-secondary);
  margin-bottom: var(--space-1);
}
.detail__section[data-v-2eccdb52] {
  margin-bottom: var(--space-4);
}
.detail__section label[data-v-2eccdb52] {
  display: block;
  font-size: var(--font-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--text-secondary);
  margin-bottom: var(--space-1);
}
.detail__section code[data-v-2eccdb52] {
  font-size: var(--font-sm);
  color: var(--text-primary);
}
.detail__pre[data-v-2eccdb52] {
  background: var(--surface-muted);
  padding: var(--space-3);
  border-radius: var(--radius-sm);
  font-size: var(--font-sm);
  overflow-x: auto;
  white-space: pre-wrap;
  word-break: break-all;
  max-height: 300px;
  overflow-y: auto;
  color: var(--text-primary);
}
.detail__pre--mono[data-v-2eccdb52] {
  font-family: 'Fira Code', 'Cascadia Code', monospace;
  font-size: var(--font-xs);
}
.service-badge[data-v-2eccdb52] {
  display: inline-block;
  padding: 2px var(--space-2);
  border-radius: var(--radius-xs);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
  background: var(--surface-muted);
  color: var(--text-primary);
}
.service-badge--api[data-v-2eccdb52] { background: var(--surface-info-soft); color: var(--color-info);
}
.service-badge--auth[data-v-2eccdb52] { background: var(--surface-purple-soft); color: var(--color-purple);
}
.service-badge--web[data-v-2eccdb52] { background: var(--surface-success-soft); color: var(--color-success);
}
.service-badge--ai[data-v-2eccdb52] { background: var(--surface-warning-soft); color: var(--color-warning);
}
.service-badge--scraper[data-v-2eccdb52] { background: var(--surface-danger-soft); color: var(--color-danger);
}
.service-badge--extractor[data-v-2eccdb52] { background: var(--surface-cyan-soft); color: var(--color-cyan);
}
.level-badge[data-v-2eccdb52] {
  display: inline-block;
  padding: 2px var(--space-1);
  border-radius: var(--radius-xs);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
}
.level-badge--error[data-v-2eccdb52] { background: var(--surface-danger-soft); color: var(--color-danger);
}
.level-badge--warn[data-v-2eccdb52] { background: var(--surface-warning-soft); color: var(--color-warning);
}
@media (max-width: 768px) {
.detail__grid[data-v-2eccdb52] { grid-template-columns: repeat(2, 1fr);
}
}

.form-group[data-v-9106b142] {
  margin-bottom: var(--space-4);
}
.form-group label[data-v-9106b142] {
  display: block;
  font-size: var(--font-sm);
  font-weight: var(--font-weight-medium);
  margin-bottom: var(--space-1);
  color: var(--text-primary);
}
.selected-errors[data-v-9106b142] {
  padding: var(--space-2) var(--space-3);
  background: var(--surface-muted);
  border-radius: var(--radius-sm);
  font-size: var(--font-sm);
  color: var(--text-secondary);
}

/* 서비스 뱃지 */
.service-badge[data-v-a2b0e9e7] {
  display: inline-block;
  padding: 2px var(--space-2);
  border-radius: var(--radius-xs);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
  background: var(--surface-muted);
  color: var(--text-primary);
}
.service-badge--api[data-v-a2b0e9e7] { background: var(--surface-info-soft); color: var(--color-info);
}
.service-badge--auth[data-v-a2b0e9e7] { background: var(--surface-purple-soft); color: var(--color-purple);
}
.service-badge--web[data-v-a2b0e9e7] { background: var(--surface-success-soft); color: var(--color-success);
}
.service-badge--ai[data-v-a2b0e9e7] { background: var(--surface-warning-soft); color: var(--color-warning);
}
.service-badge--scraper[data-v-a2b0e9e7] { background: var(--surface-danger-soft); color: var(--color-danger);
}
.service-badge--extractor[data-v-a2b0e9e7] { background: var(--surface-cyan-soft); color: var(--color-cyan);
}

/* 레벨 뱃지 */
.level-badge[data-v-a2b0e9e7] {
  display: inline-block;
  padding: 2px var(--space-1);
  border-radius: var(--radius-xs);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
}
.level-badge--error[data-v-a2b0e9e7] { background: var(--surface-danger-soft); color: var(--color-danger);
}
.level-badge--warn[data-v-a2b0e9e7] { background: var(--surface-warning-soft); color: var(--color-warning);
}

/* 에러 메시지 셀 */
.error-message-cell[data-v-a2b0e9e7] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.error-message-cell--card[data-v-a2b0e9e7] {
  gap: var(--space-1);
}
.error-code[data-v-a2b0e9e7] {
  font-size: var(--font-xs);
  color: var(--text-secondary);
  background: var(--surface-muted);
  padding: 1px var(--space-1);
  border-radius: var(--radius-xs);
  width: fit-content;
}
.error-msg[data-v-a2b0e9e7] {
  cursor: pointer;
  word-break: break-word;
  color: var(--text-primary);
}
.error-msg[data-v-a2b0e9e7]:hover {
  color: var(--primary-color);
  text-decoration: underline;
}
.error-url[data-v-a2b0e9e7] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
  word-break: break-all;
}

/* 발생 횟수 */
.count-badge[data-v-a2b0e9e7] {
  display: inline-block;
  min-width: 24px;
  text-align: center;
  padding: 2px var(--space-1);
  border-radius: var(--radius-full);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
  background: var(--surface-muted);
  color: var(--text-primary);
}
.count-badge--high[data-v-a2b0e9e7] {
  background: var(--surface-danger-soft);
  color: var(--color-danger);
}

/* 상태 아이콘 */
.status-open[data-v-a2b0e9e7] { color: var(--color-danger);
}
.status-resolved[data-v-a2b0e9e7] { color: var(--color-success);
}

/* 마지막 발생 시각 */
.time-cell[data-v-a2b0e9e7] {
  white-space: nowrap;
  font-size: var(--font-xs);
  color: var(--text-secondary);
}

/* 에러 로그 카드형 본문 */
.error-card[data-v-a2b0e9e7] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  width: 100%;
  min-width: 0;
}
.error-card__head[data-v-a2b0e9e7] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.error-card__foot[data-v-a2b0e9e7] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.issue-card[data-v-ef21564a] {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  padding: var(--space-3) var(--space-4);
  border-left: 3px solid var(--border-color);
}
.issue-card--low[data-v-ef21564a] { border-left-color: var(--color-success);
}
.issue-card--medium[data-v-ef21564a] { border-left-color: var(--color-warning);
}
.issue-card--high[data-v-ef21564a] { border-left-color: var(--color-danger);
}
.issue-card--critical[data-v-ef21564a] { border-left-color: var(--color-info);
}
.issue-card__header[data-v-ef21564a] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}
.issue-badge[data-v-ef21564a] {
  padding: 2px var(--space-2);
  border-radius: var(--radius-xs);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
}
.severity--low[data-v-ef21564a] { background: var(--surface-success-soft); color: var(--color-success);
}
.severity--medium[data-v-ef21564a] { background: var(--surface-warning-soft); color: var(--color-warning);
}
.severity--high[data-v-ef21564a] { background: var(--surface-danger-soft); color: var(--color-danger);
}
.severity--critical[data-v-ef21564a] { background: var(--surface-info-soft); color: var(--color-info);
}
.status--open[data-v-ef21564a] { background: var(--surface-danger-soft); color: var(--color-danger);
}
.status--in_progress[data-v-ef21564a] { background: var(--surface-info-soft); color: var(--color-info);
}
.status--closed[data-v-ef21564a] { background: var(--surface-success-soft); color: var(--color-success);
}
.issue-card__date[data-v-ef21564a] {
  margin-left: auto;
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.issue-card__title[data-v-ef21564a] {
  margin: 0 0 var(--space-1);
  font-size: var(--font-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  word-break: break-word;
}
.issue-card__desc[data-v-ef21564a] {
  margin: 0 0 var(--space-2);
  font-size: var(--font-sm);
  color: var(--text-secondary);
  word-break: break-word;
}
.issue-ai[data-v-ef21564a] {
  margin: var(--space-2) 0;
  padding: var(--space-3);
  border-radius: var(--radius-sm);
  background: var(--surface-info-soft);
  border: 1px solid var(--surface-info-soft);
}
.issue-ai--suggestion[data-v-ef21564a] {
  background: var(--surface-warning-soft);
  border-color: var(--surface-warning-soft);
}
.issue-ai__label[data-v-ef21564a] {
  margin-bottom: var(--space-1);
  font-size: var(--font-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-info);
}
.issue-ai--suggestion .issue-ai__label[data-v-ef21564a] { color: var(--color-warning);
}
.issue-ai__content[data-v-ef21564a] {
  font-size: var(--font-sm);
  line-height: 1.5;
  white-space: pre-wrap;
  color: var(--text-primary);
}
.issue-card__actions[data-v-ef21564a] {
  display: flex;
  gap: var(--space-2);
  margin-top: var(--space-2);
  flex-wrap: wrap;
}

.error-tracking[data-v-86ac0889] {
  /* 위 여백 0 — 서브탭(TabNav variant=sub)이 자체 margin 으로 간격을 소유 */
  padding: 0;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

/* 서브탭 컨텐츠 — 내부 ListScreen 이 남는 공간을 채우고 자체 스크롤 */
.section[data-v-86ac0889] {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

/* ListScreen 루트 상단 여백은 서브탭이 소유하므로 0 */
.section[data-v-86ac0889] .list-screen {
  flex: 1;
  min-height: 0;
  padding-top: 0;
}

.feedback-analytics[data-v-9e62afdf] {
  padding: var(--page-pad-x) var(--page-pad-x) 1.5rem;
  max-width: 1400px;
  margin: 0 auto;
}

/* ─── 상단 자동 갱신 바 ─── */
.refresh-bar[data-v-9e62afdf] {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0;
  margin-bottom: 0.5rem;
  background: var(--surface-color);
}
.last-refreshed[data-v-9e62afdf] {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.75rem;
  color: var(--text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.refresh-controls[data-v-9e62afdf] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.refresh-controls[data-v-9e62afdf] .multi-select-control {
  padding: 0 !important;
  background: var(--background-color);
  min-height: unset !important;
  height: 26px;
}
.refresh-controls[data-v-9e62afdf] .multi-select-tags {
  padding: 0 0.5rem;
  display: flex;
  align-items: center;
  height: 100%;
}
.refresh-controls[data-v-9e62afdf] .multi-select-tag {
  background: transparent !important;
  color: var(--text-secondary) !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  font-weight: normal !important;
  font-size: 0.75rem !important;
  height: auto !important;
  line-height: inherit !important;
}
.refresh-controls[data-v-9e62afdf] .multi-select-tag-remove {
  display: none !important;
}
.refresh-timer[data-v-9e62afdf] {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.progress-ring[data-v-9e62afdf] {
  transform: rotate(-90deg);
}
.progress-ring-circle-bg[data-v-9e62afdf] {
  opacity: 0.2;
}
.progress-ring-circle[data-v-9e62afdf] {
  stroke-dasharray: 69.12 69.12; /* 2 * PI * 11 */
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 1s linear, stroke 0.3s;
  stroke-linecap: round;
}
.timer-text[data-v-9e62afdf] {
  position: absolute;
  font-size: 0.55rem;
  font-weight: 600;
  color: var(--text-primary);
}

/* 통계 요약 카드 */
.stats-summary[data-v-9e62afdf] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
  margin-bottom: 2rem;
}
.stat-card[data-v-9e62afdf] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.25rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  transition: all 0.2s;
}
.stat-card[data-v-9e62afdf]:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.stat-icon[data-v-9e62afdf] {
  width: 48px;
  height: 48px;
  border-radius: 8px;
  background: linear-gradient(135deg, var(--color-info), var(--color-info-hover));
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  font-size: 1.25rem;
}
.stat-icon--rating[data-v-9e62afdf] {
  background: linear-gradient(135deg, var(--color-warning), var(--color-warning-hover));
}
.stat-icon--contact[data-v-9e62afdf] {
  background: linear-gradient(135deg, var(--color-success), var(--color-success-hover));
}
.stat-icon--recent[data-v-9e62afdf] {
  background: linear-gradient(135deg, var(--color-purple), var(--color-indigo));
}
.stat-content[data-v-9e62afdf] {
  flex: 1;
}
.stat-label[data-v-9e62afdf] {
  font-size: 0.875rem;
  color: var(--text-secondary);
  margin-bottom: 0.25rem;
}
.stat-value[data-v-9e62afdf] {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--text-primary);
}
.stat-sublabel[data-v-9e62afdf] {
  font-size: 0.875rem;
  color: var(--text-secondary);
  margin-top: 0.25rem;
}

/* 차트 섹션 */
.chart-section[data-v-9e62afdf] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 2rem;
  min-width: 0;
  overflow: hidden;
}
.chart-section--half[data-v-9e62afdf] {
  flex: 1;
  min-width: 0;
}
.charts-row[data-v-9e62afdf] {
  display: flex;
  gap: 1rem;
  margin-bottom: 2rem;
}
.chart-header[data-v-9e62afdf] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
}
.chart-header h3[data-v-9e62afdf] {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0;
}
.period-toggle[data-v-9e62afdf] {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.chart-container[data-v-9e62afdf] {
  width: 100%;
  height: 350px;
  min-width: 0;
  overflow: hidden;
}
.chart-container--pie[data-v-9e62afdf] {
  height: 300px;
}

/* 피드백 목록 */
.feedback-list-section[data-v-9e62afdf] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.5rem;
}
.list-header[data-v-9e62afdf] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.list-header h3[data-v-9e62afdf] {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.total-count[data-v-9e62afdf] {
  font-size: 0.9em;
  color: var(--text-secondary);
  font-weight: normal;
}
.list-filters[data-v-9e62afdf] {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.list-filters[data-v-9e62afdf] .multi-select-control {
  border-radius: 4px !important;
  font-size: 0.875rem !important;
  color: var(--text-primary) !important;
  background: var(--background-color) !important;
  border: 1px solid var(--border-color) !important;
  height: 32px !important;
}
.list-filters[data-v-9e62afdf] .multi-select-placeholder {
  color: var(--text-tertiary) !important;
  font-size: 0.875rem !important;
}
.loading[data-v-9e62afdf],
.empty-state[data-v-9e62afdf] {
  text-align: center;
  padding: 3rem;
  color: var(--text-secondary);
}
.empty-state i[data-v-9e62afdf] {
  font-size: 3rem;
  margin-bottom: 1rem;
  opacity: 0.5;
}

/* ListBody 는 가상 스크롤이라 바운드 높이가 필요 */
.feedback-list[data-v-9e62afdf] {
  height: clamp(300px, 55vh, 640px);
}
.rating-display[data-v-9e62afdf] {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.rating-label[data-v-9e62afdf] {
  font-size: 0.75rem;
  color: var(--text-secondary);
  font-weight: 500;
}
.rating-stars[data-v-9e62afdf] {
  display: flex;
  gap: 0.25rem;
}
.rating-stars i[data-v-9e62afdf] {
  font-size: 0.875rem;
  color: var(--text-tertiary);
}
.rating-stars i.star-filled[data-v-9e62afdf] {
  color: var(--color-warning);
}
.badge[data-v-9e62afdf] {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 600;
}
.badge--default[data-v-9e62afdf] {
  background: var(--background-color);
  color: var(--text-secondary);
}
.badge--success[data-v-9e62afdf] {
  background: var(--surface-success-soft);
  color: var(--color-success);
}
.comment-cell[data-v-9e62afdf] {
  max-width: 300px;
}
.comment-text[data-v-9e62afdf] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 페이지네이션 */
.pagination[data-v-9e62afdf] {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
}
.pagination-btn[data-v-9e62afdf] {
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--border-color);
  background: var(--background-color);
  color: var(--text-primary);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s;
}
.pagination-btn[data-v-9e62afdf]:hover:not(:disabled) {
  background: var(--surface-color);
  border-color: var(--primary-color);
}
.pagination-btn[data-v-9e62afdf]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.pagination-info[data-v-9e62afdf] {
  font-size: 0.875rem;
  color: var(--text-secondary);
  font-weight: 500;
}

/* 반응형 */
@media (max-width: 1024px) {
.charts-row[data-v-9e62afdf] {
    flex-direction: column;
}
}
@media (max-width: 768px) {
.feedback-analytics[data-v-9e62afdf] {
    padding: 1rem var(--page-pad-x);
}
.stats-summary[data-v-9e62afdf] {
    grid-template-columns: 1fr;
}
.list-header[data-v-9e62afdf] {
    flex-direction: column;
    align-items: flex-start;
}
.chart-container[data-v-9e62afdf] {
    height: 280px;
}
}
@media (max-width: 480px) {
.feedback-analytics[data-v-9e62afdf] {
    padding: 0.25rem var(--page-pad-x) 1rem;
}
.last-refreshed__label[data-v-9e62afdf] {
    display: none;
}
.chart-section[data-v-9e62afdf] {
    padding: 0.75rem;
}
.feedback-list-section[data-v-9e62afdf] {
    padding: 0.75rem;
}
}

.admin-vibe-page[data-v-af2de004] {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;
  padding: 0;
}
.admin-vibe-container[data-v-af2de004] {
  flex: 1;
  height: 100%;
  background: var(--surface-color);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
}

/* ChatWindow 내부 스타일 오버라이드 */
[data-v-af2de004] .chat-window {
  border: none;
  flex: 1;
  height: 100%;
  min-height: 0;
}
[data-v-af2de004] .chat-window-header {
  display: none !important;
}

/* 회색 영역 제거: 탭 영역 배경을 흰색으로 */
[data-v-af2de004] .page__card {
  background: var(--surface-color) !important;
}
[data-v-af2de004] .tabs-nav {
  background: var(--surface-color) !important;
}
.page[data-v-13377dd9] {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex: 1 1 auto;
  min-height: 0;
}
.page__header h2[data-v-13377dd9] {
  margin: 0;
}
.page__desc[data-v-13377dd9] {
  margin: 0.5rem 0 0;
  color: var(--text-secondary);
}
.page__card[data-v-13377dd9] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.25rem;
}
@media (max-width: 768px) {
.page__desc[data-v-13377dd9] {
    font-size: 0.9rem;
    line-height: 1.5;
    margin-top: 0.25rem;
}
}
@media (max-width: 480px) {
.page__card[data-v-13377dd9] {
    padding: 0.5rem;
}
}
.page[data-v-13377dd9] {
  margin: 0;
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.page__card[data-v-13377dd9] {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1 1 auto;
  overflow: hidden;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
}

/* 모든 탭의 좌우 여백을 1.5rem 으로 통일 (AdminSettingsView 기준).
   admin 자식 컴포넌트는 자체 1.5rem 패딩을 가지므로 .tab-pane--admin 은 무패딩,
   자체 패딩이 없는 탭(프로필/활동/규칙/파싱작업)은 래퍼에서 동일 값으로 패딩. */
.settings-container[data-v-13377dd9] {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: var(--page-pad-x) var(--page-pad-x) 1.5rem;
}

/* 카탈로그 탭은 자체 padding-bottom (1.5rem) 으로 처리 — settings-container 의 3rem 추가 안 들어가게 */
.settings-container[data-v-13377dd9]:has(> .tab-pane--catalog) {
  padding-bottom: 0;
}

/* 카탈로그 tab-pane 이 viewport 잔여 공간을 채우도록 min-height + flex 컨테이너로
   ─ admin-settings 처럼 pagination 아래 여백이 항상 catalog-config 의 padding-bottom 만큼만 남음 */
.tab-pane--catalog[data-v-13377dd9] {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
.tab-pane--catalog[data-v-13377dd9] > * {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
}

/* 탭 네비게이션은 공통 TabNav 컴포넌트가 담당 */

/* 후처리 규칙 탭 — 자식 컴포넌트가 전체 높이 사용 */
.tab-pane--rules[data-v-13377dd9] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: var(--page-pad-x) var(--page-pad-x) 1.5rem;
}
.tab-pane--rules[data-v-13377dd9] > * {
  flex: 1 1 auto;
  min-height: 0;
}

/* 파싱 작업 탭 — 후처리 규칙과 동일 패턴 */
.tab-pane--parsing-jobs[data-v-13377dd9] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: var(--page-pad-x) var(--page-pad-x) 1.5rem;
}
.tab-pane--parsing-jobs[data-v-13377dd9] > * {
  flex: 1 1 auto;
  min-height: 0;
}

/* 권한 기반 admin 탭 — 페인 자체가 잔여 높이 채우고 내부 스크롤
   admin 자식 컴포넌트(AdminSystemMonitoring 등)는 AdminSettingsView 의
   무패딩 .tab-pane 기준으로 자체 패딩을 가짐 → 여기서 패딩을 더하면 이중 패딩.
   AdminSettingsView .tab-pane 과 동일하게 패딩 없이 둔다. */
.tab-pane--admin[data-v-13377dd9] {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.tab-pane--admin[data-v-13377dd9] > * {
  width: 100%;
}

/* 활동 탭 */
.tab-pane--activity[data-v-13377dd9] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: var(--page-pad-x) var(--page-pad-x) 1.5rem;
}
.tab-pane--activity[data-v-13377dd9] > * {
  flex: 1 1 auto;
  min-height: 0;
}

/* 역할 + 경험치 (읽기 전용) */
.rolesxp-grid[data-v-13377dd9] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}
.rolesxp-card[data-v-13377dd9] {
  border: 1px solid var(--border-color);
  border-radius: 0.75rem;
  background: var(--surface-muted);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.rolesxp-card-header[data-v-13377dd9] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background: var(--surface-card, var(--surface-color));
  border-bottom: 1px solid var(--border-color);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-primary);
}
.rolesxp-card-header .material-symbols-rounded[data-v-13377dd9] {
  font-size: 1.125rem;
  color: var(--primary-color);
}
.rolesxp-card-body[data-v-13377dd9] {
  padding: 1rem;
}
.rolesxp-loading[data-v-13377dd9],
.rolesxp-empty[data-v-13377dd9] {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  color: var(--text-secondary);
  font-size: 0.875rem;
}
.rolesxp-loading .material-symbols-rounded[data-v-13377dd9] {
  font-size: 1.5rem;
  color: var(--primary-color);
}
.role-badges[data-v-13377dd9] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.role-badge[data-v-13377dd9] {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.75rem;
  background: var(--surface-primary-soft);
  color: var(--primary-color);
  border: 1px solid rgba(var(--primary-rgb), 0.3);
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
}
.role-badge .material-symbols-rounded[data-v-13377dd9] {
  font-size: 1rem;
}
.role-badge--system[data-v-13377dd9] {
  background: var(--surface-indigo-soft);
  color: var(--color-indigo);
  border-color: rgba(var(--color-indigo-rgb), 0.3);
}
.xp-list[data-v-13377dd9] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.xp-row[data-v-13377dd9] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 0.25rem;
  border-bottom: 1px dashed var(--border-color);
}
.xp-row[data-v-13377dd9]:last-child {
  border-bottom: none;
}
.xp-row-left[data-v-13377dd9] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}
.xp-icon[data-v-13377dd9] {
  font-size: 1.125rem;
  color: var(--primary-color);
}
.xp-label[data-v-13377dd9] {
  font-size: 0.875rem;
  color: var(--text-primary);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.xp-row-right[data-v-13377dd9] {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
  flex-shrink: 0;
}
.xp-count[data-v-13377dd9] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}
.xp-unit[data-v-13377dd9] {
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.xp-last[data-v-13377dd9] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  margin-left: 0.5rem;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 480px) {
.xp-row[data-v-13377dd9] {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
}
.xp-row-right[data-v-13377dd9] {
    width: 100%;
    justify-content: flex-end;
}
}

/* 섹션 */
.settings-section[data-v-13377dd9] {
  margin-bottom: 2.5rem;
  padding: 0;
  background: transparent;
  border: none;
}
.section-header[data-v-13377dd9] {
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border-color);
}
.section-title[data-v-13377dd9] {
  margin: 0;
  font-size: 1.375rem;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 0.625rem;
}
.section-title .material-symbols-rounded[data-v-13377dd9] {
  font-size: 1.5rem;
  color: var(--primary-color);
}

/* 프로필 컨텐츠 */
.profile-content[data-v-13377dd9] {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2.5rem;
  align-items: start;
}

/* 아바타 섹션 */
.avatar-section[data-v-13377dd9] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
}
.avatar-wrapper[data-v-13377dd9] {
  position: relative;
}
.avatar-remove-btn[data-v-13377dd9] {
  position: absolute;
  top: 0;
  right: -10px;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--surface-card, var(--surface-muted));
  border: 1px solid var(--border-color);
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: all 0.2s ease;
  z-index: 20;
}
.avatar-remove-btn[data-v-13377dd9]:hover {
  background: var(--surface-hover);
  color: var(--color-danger);
  transform: scale(1.1);
}
.avatar-remove-btn .material-symbols-rounded[data-v-13377dd9] {
  font-size: 1.25rem;
}
.avatar-container[data-v-13377dd9] {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  overflow: hidden;
  cursor: pointer;
  position: relative;
  border: 4px solid var(--primary-color);
  box-shadow: var(--shadow-lg);
  transition: all 0.3s ease;
}
.avatar-container[data-v-13377dd9]:hover {
  transform: scale(1.05);
  box-shadow: var(--shadow-lg);
}
.avatar-image[data-v-13377dd9] {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.avatar-placeholder[data-v-13377dd9] {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}
.avatar-placeholder .material-symbols-rounded[data-v-13377dd9] {
  font-size: 4rem;
  color: var(--color-white);
}
.avatar-actions[data-v-13377dd9] {
  display: flex;
  gap: 0.75rem;
  margin-top: 0.75rem;
}
.action-btn[data-v-13377dd9] {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: 1px solid var(--border-color);
  background: var(--surface-card);
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
}
.action-btn[data-v-13377dd9]:hover {
  background: var(--surface-hover);
  color: var(--primary-color);
  border-color: var(--primary-color);
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}
.action-btn .material-symbols-rounded[data-v-13377dd9] {
  font-size: 1.5rem;
}
.avatar-info[data-v-13377dd9] {
  text-align: center;
}
.avatar-label[data-v-13377dd9] {
  margin: 0 0 0.25rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-primary);
}
.avatar-hint[data-v-13377dd9] {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--text-secondary);
}

/* 프로필 폼 */
.profile-form[data-v-13377dd9],
.password-content[data-v-13377dd9] {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.social-user-notice {
&[data-v-13377dd9] {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem;
  background: var(--surface-info-soft);
  border-radius: 8px;
  border-left: 4px solid var(--color-info);
  }
.material-symbols-rounded[data-v-13377dd9] {
    color: var(--color-info);
    font-size: 1.25rem;
    flex-shrink: 0;
}
p[data-v-13377dd9] {
    margin: 0;
    color: var(--text-secondary);
    font-size: 0.875rem;
    line-height: 1.5;
}
}
.form-group[data-v-13377dd9] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.form-label[data-v-13377dd9] {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.form-label .material-symbols-rounded[data-v-13377dd9] {
  font-size: 1.125rem;
  color: var(--primary-color);
}
.form-input[data-v-13377dd9] {
  padding: 0.875rem 1rem;
  font-size: 0.9375rem;
  border: 1px solid var(--border-color);
  border-radius: 0.5rem;
  background: var(--surface-muted);
  color: var(--text-primary);
  transition: all 0.2s ease;
}
.form-input[data-v-13377dd9]:hover:not(:disabled) {
  border-color: var(--primary-color);
}
.form-input[data-v-13377dd9]:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.form-input[data-v-13377dd9]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  background: var(--surface-color);
}
.form-input--verified[data-v-13377dd9] {
  border-color: var(--success-color);
  background: var(--surface-primary-soft);
}
.form-input--verified[data-v-13377dd9]:hover:not(:disabled) {
  border-color: var(--success-color);
}
.form-input--verified[data-v-13377dd9]:focus {
  border-color: var(--success-color);
  box-shadow: var(--ring-focus);
}
.form-hint[data-v-13377dd9] {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--text-tertiary);
}
.input-error[data-v-13377dd9] {
  border-color: var(--color-danger) !important;
}
.text-error[data-v-13377dd9] {
  color: var(--color-danger) !important;
}
.form-error[data-v-13377dd9] {
  font-size: 0.8125rem;
  color: var(--color-danger);
  margin: 0;
}

/* 버튼 */
.form-actions[data-v-13377dd9] {
  display: flex;
  gap: 1rem;
  margin-top: 0.5rem;
}
.form-actions--separated[data-v-13377dd9] {
  justify-content: space-between;
  margin-top: 0;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border-color);
}

/* btn-primary/btn-cancel/btn-password → AppButton variants */

/* 반응형 */
@media (max-width: 1024px) {
.profile-content[data-v-13377dd9] {
    grid-template-columns: 1fr;
    gap: 1.75rem;
}
.avatar-section[data-v-13377dd9] {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    gap: 1.25rem;
}
.avatar-info[data-v-13377dd9] {
    text-align: left;
}
.settings-container[data-v-13377dd9] {
    padding: 1.25rem 1.5rem 2rem;
}
}
@media (max-width: 768px) {
.settings-container[data-v-13377dd9] {
    padding: 1rem;
}
.settings-section[data-v-13377dd9] {
    padding: 0;
    margin-bottom: 1.5rem;
}
.section-header[data-v-13377dd9] {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
}
.section-title[data-v-13377dd9] {
    font-size: 1.125rem;
}

  /* 아바타: 폰에서는 다시 중앙 정렬 column */
.avatar-section[data-v-13377dd9] {
    flex-direction: column;
    align-items: center;
    gap: 0.875rem;
    padding: 0.5rem 0;
}
.avatar-info[data-v-13377dd9] {
    text-align: center;
}
.avatar-container[data-v-13377dd9] {
    width: 110px;
    height: 110px;
}
.avatar-placeholder .material-symbols-rounded[data-v-13377dd9] {
    font-size: 3rem;
}

  /* 폼 액션: 풀폭, 주요 버튼이 위로 */
.form-actions[data-v-13377dd9] {
    flex-direction: column;
    gap: 0.75rem;
}
.form-actions--separated[data-v-13377dd9] {
    flex-direction: column-reverse;
    gap: 0.75rem;
    padding-top: 1rem;
}
.form-actions[data-v-13377dd9] .app-btn {
    width: 100%;
    justify-content: center;
}

  /* 이메일 인풋 + 인증 버튼 세로 스택 */
.email-input-row[data-v-13377dd9] {
    flex-direction: column;
    gap: 0.5rem;
}
.btn-verify[data-v-13377dd9] {
    width: 100%;
    justify-content: center;
}

  /* 모달: 폰에서 패딩 줄이고 액션 풀폭 */
.modal-overlay[data-v-13377dd9] {
    padding: 0.75rem;
}
.modal-header[data-v-13377dd9] {
    padding: 1rem 1.25rem;
}
.modal-body[data-v-13377dd9] {
    padding: 1.25rem 1rem;
    gap: 1rem;
}
.modal-actions[data-v-13377dd9] {
    flex-direction: column-reverse;
    gap: 0.5rem;
}
.form-input--code[data-v-13377dd9] {
    letter-spacing: 0.35rem;
    font-size: 1.125rem;
}
}
@media (max-width: 480px) {
.section-title[data-v-13377dd9] {
    font-size: 1rem;
}
.section-title .material-symbols-rounded[data-v-13377dd9] {
    font-size: 1.25rem;
}
.settings-container[data-v-13377dd9] {
    padding: 0.75rem;
}
.avatar-actions[data-v-13377dd9] {
    gap: 0.5rem;
}
.action-btn[data-v-13377dd9] {
    width: 40px;
    height: 40px;
}
.action-btn .material-symbols-rounded[data-v-13377dd9] {
    font-size: 1.375rem;
}
.form-input[data-v-13377dd9] {
    padding: 0.75rem 0.85rem;
    font-size: 0.9rem;
}
.form-input--code[data-v-13377dd9] {
    letter-spacing: 0.3rem;
    font-size: 1rem;
}
.modal-overlay[data-v-13377dd9] {
    padding: 0.5rem;
}
.modal-content[data-v-13377dd9] {
    border-radius: 0.75rem;
}
.modal-header[data-v-13377dd9] {
    padding: 0.875rem 1rem;
}
.modal-body[data-v-13377dd9] {
    padding: 1rem 0.85rem;
}
.email-verified-badge[data-v-13377dd9] {
    margin-left: 0;
}
}

/* 모달 스타일 */
.modal-overlay[data-v-13377dd9] {
  position: fixed;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 1rem;
}
.modal-content[data-v-13377dd9] {
  background: var(--surface-card, var(--surface-muted));
  border: 1px solid var(--border-color);
  border-radius: 1rem;
  width: 100%;
  max-width: 420px;
  box-shadow: var(--shadow-modal);
  animation: modalSlideIn-13377dd9 0.2s ease-out;
}
@keyframes modalSlideIn-13377dd9 {
from {
    opacity: 0;
    transform: translateY(-20px) scale(0.95);
}
to {
    opacity: 1;
    transform: translateY(0) scale(1);
}
}
.modal-header[data-v-13377dd9] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--border-color);
}
.modal-title[data-v-13377dd9] {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.modal-title .material-symbols-rounded[data-v-13377dd9] {
  font-size: 1.25rem;
  color: var(--primary-color);
}

/* modal-close → AppButton icon-only ghost sm */
.modal-body[data-v-13377dd9] {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.modal-actions[data-v-13377dd9] {
  display: flex;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

/* modal-actions: btn-cancel → AppButton secondary, btn-primary → AppButton primary */
.modal-actions[data-v-13377dd9] .app-btn {
  flex: 1;
  justify-content: center;
}
.general-error[data-v-13377dd9] {
  text-align: center;
  padding: 0.75rem;
  background: var(--surface-danger-soft);
  border-radius: 0.5rem;
}
.confirm-desc[data-v-13377dd9] {
  margin: 0;
  color: var(--text-secondary);
  font-size: 0.9375rem;
  line-height: 1.5;
}

/* 이메일 인증 관련 스타일 */
.email-input-row[data-v-13377dd9] {
  display: flex;
  gap: 0.75rem;
}
.email-input-row .form-input[data-v-13377dd9] {
  flex: 1;
}

/* btn-verify → AppButton secondary sm (layout: flex-shrink) */
.btn-verify[data-v-13377dd9] {
  flex-shrink: 0;
}
.email-verified-badge[data-v-13377dd9] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-left: 0.5rem;
  padding: 0.125rem 0.5rem;
  background: var(--surface-primary-soft);
  color: var(--success-color);
  border-radius: 1rem;
  font-size: 0.75rem;
  font-weight: 500;
}
.email-verified-badge .material-symbols-rounded[data-v-13377dd9] {
  font-size: 0.875rem;
}
.email-warning[data-v-13377dd9] {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-top: 0.5rem;
  padding: 0.75rem;
  background: var(--surface-warning-soft);
  border-radius: 0.5rem;
  border-left: 3px solid var(--color-warning);
  color: var(--text-secondary);
  font-size: 0.8125rem;
  line-height: 1.4;
}
.email-warning .material-symbols-rounded[data-v-13377dd9] {
  color: var(--color-warning);
  font-size: 1rem;
  flex-shrink: 0;
}
.email-code-label-row[data-v-13377dd9] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.email-code-timer[data-v-13377dd9] {
  font-size: 0.875rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--text-secondary);
}
.email-code-timer--warning[data-v-13377dd9] {
  color: var(--color-warning-hover);
}
.email-code-timer--expired[data-v-13377dd9] {
  color: var(--color-danger-hover);
  font-size: 0.8rem;
  font-weight: 500;
}
.form-input--code[data-v-13377dd9] {
  letter-spacing: 0.5rem;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 700;
}

/* resend-btn → AppButton ghost sm (layout: width+margin) */
.resend-btn[data-v-13377dd9] {
  width: 100%;
  margin-top: 0.5rem;
  text-decoration: underline;
}
.page[data-v-80be0f86] {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex: 1 1 auto;
  min-height: 0;
}
.page__header h2[data-v-80be0f86] {
  margin: 0;
}
.page__desc[data-v-80be0f86] {
  margin: 0.5rem 0 0;
  color: var(--text-secondary);
}
.page__card[data-v-80be0f86] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.25rem;
}
@media (max-width: 768px) {
.page__desc[data-v-80be0f86] {
    font-size: 0.9rem;
    line-height: 1.5;
    margin-top: 0.25rem;
}
}
@media (max-width: 480px) {
.page__card[data-v-80be0f86] {
    padding: 0.5rem;
}
}
.page[data-v-80be0f86] {
  margin: 0 auto;
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  height: calc(100vh - 4.5rem - 3rem); /* Topbar(~4.5rem) + padding(3rem) */
  overflow: hidden;
}
.page__header[data-v-80be0f86] {
  flex: 0 0 auto;
}
.page__card[data-v-80be0f86] {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1 1 auto;
  overflow: hidden;
  height: 0; /* flex item이 부모 높이에 맞추도록 */
  background: var(--surface-color);
  border: none;
  border-radius: 0;
  padding: 0;
}

/* 탭 컨텐츠 */
.tabs-content[data-v-80be0f86] {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.tab-pane[data-v-80be0f86] {
  animation: fadeIn-80be0f86 0.3s ease-in-out;
  height: 100%;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.tab-pane--fixed[data-v-80be0f86] {
  overflow: hidden;
}
.tab-pane[data-v-80be0f86] > * {
  width: 100%;
}
.tabs-content[data-v-80be0f86]::-webkit-scrollbar {
  width: 8px;
}
.tabs-content[data-v-80be0f86]::-webkit-scrollbar-track {
  background: var(--surface-muted, var(--surface-color));
  border-radius: 4px;
}
.tabs-content[data-v-80be0f86]::-webkit-scrollbar-thumb {
  background: var(--text-tertiary, var(--text-secondary));
  border-radius: 4px;
  border: 2px solid var(--surface-muted, var(--surface-color));
}
.tabs-content[data-v-80be0f86]::-webkit-scrollbar-thumb:hover {
  background: var(--primary-color);
}
.tab-pane[data-v-80be0f86] {
  animation: fadeIn-80be0f86 0.3s ease-in-out;
}
@keyframes fadeIn-80be0f86 {
from {
    opacity: 0;
    transform: translateY(10px);
}
to {
    opacity: 1;
    transform: translateY(0);
}
}
@media (max-width: 768px) {
.tab-pane--fixed[data-v-80be0f86] {
    overflow: auto !important;
}
}

.forbidden[data-v-6d20a4e9] {
  text-align: center;
  padding: 4rem 1rem;
  min-height: 100vh;
  min-height: var(--vh, 100vh);
  min-height: 100dvh;
  background: var(--background-color);
}
.forbidden h2[data-v-6d20a4e9] {
  font-size: 2rem;
  margin-bottom: 1rem;
  color: var(--text-primary);
}
.forbidden p[data-v-6d20a4e9] {
  font-size: 1rem;
  color: var(--text-secondary);
  margin-bottom: 2rem;
}
.forbidden__cta[data-v-6d20a4e9] {
  display: inline-flex;
  margin-top: 1rem;
  background: var(--primary-color);
  color: white;
  padding: 0.75rem 1.25rem;
  border-radius: 0.75rem;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.forbidden__cta[data-v-6d20a4e9]:hover {
  opacity: 0.9;
}
.page[data-v-438fb3b2] {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex: 1 1 auto;
  min-height: 0;
}
.page__header h2[data-v-438fb3b2] {
  margin: 0;
}
.page__desc[data-v-438fb3b2] {
  margin: 0.5rem 0 0;
  color: var(--text-secondary);
}
.page__card[data-v-438fb3b2] {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.25rem;
}
@media (max-width: 768px) {
.page__desc[data-v-438fb3b2] {
    font-size: 0.9rem;
    line-height: 1.5;
    margin-top: 0.25rem;
}
}
@media (max-width: 480px) {
.page__card[data-v-438fb3b2] {
    padding: 0.5rem;
}
}
.doc-viewer-page[data-v-438fb3b2] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.doc-viewer-card[data-v-438fb3b2],
.page__card.doc-viewer-card[data-v-438fb3b2] {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 0;
  border-radius: 0;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  overflow: hidden;
}

/* ─── 문서 네비게이션 헤더 ─── */
.doc-nav-header[data-v-438fb3b2] {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
  background: var(--surface-color);
}
.doc-nav-header__product-row[data-v-438fb3b2] {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.375rem 0.5rem;
  margin-bottom: 0.375rem;
}
.doc-nav-header__product[data-v-438fb3b2] {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.4;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-align: center;
}
.doc-nav-header__doctype[data-v-438fb3b2] {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--text-primary);
  white-space: nowrap;
  flex-shrink: 0;
}
.doc-nav-header__doctype-select[data-v-438fb3b2] {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--text-primary);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 4px;
  padding: 0 0.375rem;
  height: 1.5rem;
  cursor: pointer;
  flex-shrink: 0;
  outline: none;
  text-align: center;
  text-align-last: center;
}
.doc-nav-header__doctype-select[data-v-438fb3b2]:hover {
  border-color: var(--primary-color);
}
.doc-nav-header__doctype-select[data-v-438fb3b2]:focus {
  border-color: var(--primary-color);
  box-shadow: 0 0 0 1px var(--primary-color);
}
.doc-nav-header__version[data-v-438fb3b2] {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-tertiary);
}
.doc-nav-header__version-nav[data-v-438fb3b2] {
  display: inline-flex;
  align-items: center;
  gap: 0.125rem;
  flex-shrink: 0;
}
.doc-nav-header__version-select[data-v-438fb3b2] {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-secondary);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 3px;
  padding: 0 0.25rem;
  height: 1.5rem;
  cursor: pointer;
  outline: none;
  text-align: center;
  text-align-last: center;
  min-width: 2.5rem;
}
.doc-nav-header__version-select[data-v-438fb3b2]:hover {
  border-color: var(--primary-color);
}
.doc-nav-header__version-select[data-v-438fb3b2]:focus {
  border-color: var(--primary-color);
  box-shadow: 0 0 0 1px var(--primary-color);
}
.doc-nav-header__version-btn[data-v-438fb3b2] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border: none;
  border-radius: 3px;
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.625rem;
  cursor: pointer;
  padding: 0;
  transition: background 0.15s, color 0.15s;
}
.doc-nav-header__version-btn[data-v-438fb3b2]:hover:not(:disabled) {
  background: var(--surface-color-secondary);
  color: var(--text-primary);
}
.doc-nav-header__version-btn[data-v-438fb3b2]:disabled {
  opacity: 0.3;
  cursor: default;
}
.doc-nav-header__return-btn[data-v-438fb3b2] {
  color: var(--primary-color);
}
.doc-nav-header__return-btn[data-v-438fb3b2]:hover:not(:disabled) {
  background: var(--primary-color);
  color: var(--color-white);
}
.doc-nav-header__compare-btn[data-v-438fb3b2] {
  color: var(--success-color);
  font-size: 1rem;
}
.doc-nav-header__compare-btn[data-v-438fb3b2]:hover:not(:disabled) {
  background: var(--success-color);
  color: var(--color-white);
}
.doc-nav-header__details[data-v-438fb3b2] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.doc-nav-header__left[data-v-438fb3b2] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  min-width: 0;
}
.doc-nav-header__favicon[data-v-438fb3b2] {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  border-radius: 2px;
}
.doc-nav-header__company[data-v-438fb3b2] {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-secondary);
  white-space: nowrap;
}
.doc-nav-header__period[data-v-438fb3b2] {
  font-size: 0.6875rem;
  color: var(--text-tertiary);
  white-space: nowrap;
}
.doc-nav-header__right[data-v-438fb3b2] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.doc-nav-header__file-info[data-v-438fb3b2] {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  white-space: nowrap;
}

/* ─── 메타편집 진입 ─── */
.doc-nav-header__meta-action[data-v-438fb3b2] {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  flex-shrink: 0;
}
.doc-nav-header__meta-avatar[data-v-438fb3b2] {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.625rem;
  color: var(--color-white);
  background: var(--surface-muted);
  border: 2px solid var(--surface-color);
  overflow: hidden;
  position: relative;
  transition: transform 0.15s;
}
.doc-nav-header__meta-avatar--mine[data-v-438fb3b2] {
  cursor: pointer;
  border-color: var(--primary-color);
  box-shadow: 0 0 0 1px var(--primary-color);
}
.doc-nav-header__meta-avatar--mine[data-v-438fb3b2]:hover {
  transform: scale(1.1);
}
.doc-nav-header__meta-avatar-img[data-v-438fb3b2] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.doc-nav-header__meta-worker-name[data-v-438fb3b2] {
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.doc-nav-header__meta-btn[data-v-438fb3b2] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  height: 1.5rem;
  padding: 0 0.5rem;
  font-size: 0.75rem;
  background: transparent;
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
  border-radius: 3px;
  cursor: pointer;
  white-space: nowrap;
}
.doc-nav-header__meta-btn[data-v-438fb3b2]:hover {
  background: var(--primary-color);
  color: white;
  border-color: var(--primary-color);
}
.doc-nav-header__meta-btn[data-v-438fb3b2]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* ─── 문서 뷰어 ─── */
.doc-viewer-container[data-v-438fb3b2] {
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  position: relative;
  overflow: auto;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}
.pdf-viewer-iframe[data-v-438fb3b2] {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  box-shadow: none;
  display: block;
  margin: 0;
  padding: 0;
}
.onlyoffice-container[data-v-438fb3b2] {
  width: 100%;
  height: 100%;
  display: block;
}
.error-container[data-v-438fb3b2],
.loading-container[data-v-438fb3b2] {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}
.error-content[data-v-438fb3b2],
.loading-content[data-v-438fb3b2] {
  text-align: center;
}
.error-message[data-v-438fb3b2] {
  color: var(--color-danger);
  font-size: 0.9375rem;
  margin-top: 0.5rem;
}
.loading-message[data-v-438fb3b2] {
  color: var(--text-secondary);
  font-size: 1.125rem;
}
.error-title[data-v-438fb3b2] {
  font-size: 1.0625rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}

/* download-button → AppButton primary (layout: margin-top) */
.download-button[data-v-438fb3b2] {
  margin-top: 1rem;
}
.download-only-container[data-v-438fb3b2] {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}
.download-only-content[data-v-438fb3b2] {
  text-align: center;
  max-width: 400px;
}
.download-only-icon[data-v-438fb3b2] {
  font-size: 4rem;
  color: var(--text-secondary);
  margin-bottom: 1rem;
}
.download-only-title[data-v-438fb3b2] {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 0.5rem;
}
.download-only-message[data-v-438fb3b2] {
  color: var(--text-secondary);
  font-size: 0.9375rem;
  margin-bottom: 1.5rem;
  line-height: 1.5;
}
.loading-spinner[data-v-438fb3b2] {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 3px solid var(--border-color);
  border-top-color: var(--primary-color);
  animation: doc-spinner-438fb3b2 0.8s linear infinite;
  margin: 0 auto 1rem;
}
@keyframes doc-spinner-438fb3b2 {
to {
    transform: rotate(360deg);
}
}
.pdf-loading-overlay[data-v-438fb3b2] {
  position: absolute;
  inset: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 768px) {
.doc-viewer-card[data-v-438fb3b2] {
    border: none;
}
.doc-nav-header[data-v-438fb3b2] {
    padding: 0.5rem 0.75rem;
}
.doc-nav-header__product[data-v-438fb3b2] {
    font-size: 0.8125rem;
    flex-basis: 100%;
    text-align: center;
}
.doc-nav-header__doctype[data-v-438fb3b2] {
    font-size: 0.8125rem;
}
  /* 모바일: 부수 정보(파일정보 #id/확장자/페이지/용량)는 생략 — 회사명/날짜/메타생성 액션만 노출 */
.doc-nav-header__file-info[data-v-438fb3b2] {
    display: none;
}
}

.password-reset[data-v-d5afff8d] {
  width: 100%;
}
.password-reset__step[data-v-d5afff8d] {
  animation: slideIn-d5afff8d 0.3s ease-out;
}
.password-reset__step--success[data-v-d5afff8d] {
  text-align: center;
}
@keyframes slideIn-d5afff8d {
from { opacity: 0; transform: translateY(10px);
}
to { opacity: 1; transform: translateY(0);
}
}
.password-reset__description[data-v-d5afff8d] {
  margin-bottom: 1.5rem;
  color: var(--text-secondary);
  font-size: 0.95rem;
  line-height: 1.5;
  text-align: center;
}
.password-reset__form[data-v-d5afff8d] {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.password-reset__field[data-v-d5afff8d] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  text-align: left;
}
.password-reset__label[data-v-d5afff8d] {
  font-size: 0.875rem;
  color: var(--text-secondary);
  font-weight: 500;
}
.password-reset__input-wrapper[data-v-d5afff8d] {
  position: relative;
}
.password-reset__input[data-v-d5afff8d] {
  width: 100%;
}
.password-reset__input--code[data-v-d5afff8d] {
  letter-spacing: 0.5rem;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 700;
}

/* router-link로 사용되는 Step4 백 투 로그인 링크용 — AppButton 미사용 */
.password-reset__submit[data-v-d5afff8d] {
  width: 100%;
  padding: 0.875rem 1.5rem;
  background: var(--primary-color);
  color: var(--color-white);
  border: none;
  border-radius: 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  text-decoration: none;
}
.password-reset__submit[data-v-d5afff8d]:hover:not(:disabled) {
  filter: brightness(1.05);
}
.password-reset__error[data-v-d5afff8d] {
  color: var(--color-danger);
  font-size: 0.875rem;
  margin-top: 0.25rem;
}
.password-reset__header[data-v-d5afff8d] {
  text-align: center;
  margin-bottom: 1.5rem;
}
.password-reset__step-title[data-v-d5afff8d] {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
  color: var(--text-primary);
}
.password-reset__step-desc[data-v-d5afff8d] {
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.5;
  margin: 0;
}
.password-reset__success-icon[data-v-d5afff8d] {
  font-size: 3rem;
  color: var(--success-color);
  margin-bottom: 1rem;
}
.password-reset__label-row[data-v-d5afff8d] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.password-reset__timer[data-v-d5afff8d] {
  font-size: 0.875rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--text-secondary);
}
.password-reset__timer--warning[data-v-d5afff8d] {
  color: var(--color-warning-hover);
}
.password-reset__timer--expired[data-v-d5afff8d] {
  color: var(--color-danger-hover);
  font-size: 0.8rem;
  font-weight: 500;
}

/* Reuse LoginView styles for consistency */
.login[data-v-79135ea5] {
  min-height: 100vh;
  height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: var(--background-color);
  color: var(--text-primary);
}
.login__container[data-v-79135ea5] {
  width: 100%;
  max-width: 400px; /* Slightly wider than login for code input */
}
.login__card[data-v-79135ea5] {
  width: 100%;
  background: transparent;
  border: none;
}
.login__header[data-v-79135ea5] {
  text-align: center;
  padding: 2rem 2rem 0.5rem;
}
.login__logo[data-v-79135ea5] {
  display: flex;
  justify-content: center;
  margin-bottom: 0;
}
.login__logo-image[data-v-79135ea5] {
  width: 64px;
  height: 64px;
  animation: bounce-79135ea5 2s infinite;
  cursor: pointer;
}
@keyframes bounce-79135ea5 {
0%, 20%, 50%, 80%, 100% { transform: translateY(0);
}
40% { transform: translateY(-10px);
}
60% { transform: translateY(-5px);
}
}
.login__content[data-v-79135ea5] {
  padding: 0.75rem 2rem 2rem;
}
.login__greeting[data-v-79135ea5] {
  margin: 0 0 1.5rem;
  color: var(--text-primary);
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
}
.login__footer[data-v-79135ea5] {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border-color);
  text-align: center;
}
.login__about-link[data-v-79135ea5] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-secondary);
  text-decoration: none;
  font-size: 0.95rem;
  transition: all 0.2s;
  padding: 0.5rem 1rem;
  border-radius: 0.375rem;
}
.login__about-link[data-v-79135ea5]:hover {
  color: var(--primary-color);
  background: var(--surface-muted);
}

.login[data-v-45f5edd7] {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: var(--background-color);
  color: var(--text-primary);
  overflow-y: auto;
}
.login__container[data-v-45f5edd7] {
  width: 100%;
  max-width: 380px;
}
.login__card[data-v-45f5edd7] {
  width: 100%;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}
.login__header[data-v-45f5edd7] {
  text-align: center;
  padding: 2rem 2rem 0.5rem;
}
.login__logo[data-v-45f5edd7] {
  display: flex;
  justify-content: center;
  margin-bottom: 0;
}
.login__logo-image[data-v-45f5edd7] {
  width: 64px;
  height: 64px;
  animation: bounce-45f5edd7 2s infinite;
}
@keyframes bounce-45f5edd7 {
0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
}
40% {
    transform: translateY(-10px);
}
60% {
    transform: translateY(-5px);
}
}
.login__content[data-v-45f5edd7] {
  padding: 0.75rem 2rem 2rem;
}
.login__greeting[data-v-45f5edd7] {
  margin: 0 0 0.5rem;
  color: var(--text-primary);
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
}
.login__desc[data-v-45f5edd7] {
  margin: 0 0 2rem;
  color: var(--text-secondary);
  font-size: 0.95rem;
  text-align: center;
  line-height: 1.5;
}
.login__form[data-v-45f5edd7] {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.login__field[data-v-45f5edd7] {
  display: flex;
  flex-direction: column;
  overflow: visible;
}
.login__input-group[data-v-45f5edd7] {
  display: flex;
  align-items: stretch;
  border: 1px solid var(--border-color);
  border-radius: 0.5rem;
  background: var(--surface-color);
  overflow: visible;
  transition: border-color 0.2s;
}
.login__input-group[data-v-45f5edd7]:focus-within {
  border-color: var(--primary-color);
}
.login__input-addon[data-v-45f5edd7] {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.75rem;
  background: var(--surface-muted);
  border-right: 1px solid var(--border-color);
  color: var(--text-secondary);
  flex-shrink: 0;
  border-top-left-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}
.login__input-group:focus-within .login__input-addon[data-v-45f5edd7] {
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.login__input-wrapper[data-v-45f5edd7] {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
  overflow: visible;
}
.login__input[data-v-45f5edd7] {
  width: 100%;
  padding: 0.875rem 0.75rem;
  border: none;
  background: transparent;
  outline: none;
}
.login__label[data-v-45f5edd7] {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-secondary);
  font-size: 1rem;
  pointer-events: none;
  transition: all 0.2s;
  background: var(--surface-color);
  padding: 0 0.25rem;
  z-index: 1;
  white-space: nowrap;
}
.login__input:focus + .login__label[data-v-45f5edd7],
.login__input--has-value + .login__label[data-v-45f5edd7] {
  top: 0;
  font-size: 0.75rem;
  color: var(--primary-color);
}
.login__password-toggle[data-v-45f5edd7] {
  position: absolute;
  right: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  color: var(--text-secondary);
  cursor: pointer;
  padding: 0.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s;
}
.login__password-toggle[data-v-45f5edd7]:hover {
  color: var(--text-primary);
}
.login__password-toggle i[data-v-45f5edd7] {
  font-size: 0.875rem;
}
.login__message[data-v-45f5edd7] {
  margin: 0.25rem 0 0;
  padding: 0.25rem 0 0;
  text-align: center;
  color: var(--color-danger);
  font-size: 0.875rem;
  background: transparent;
  border: none;
  min-height: 2.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* 카카오 로그인 버튼과 높이를 맞추기 위해 AppButton 기본 md(32px) 대신 동일한 패딩/폰트로 덮어쓴다 */
.login__submit[data-v-45f5edd7] {
  margin-top: 0.5rem;
  height: auto;
  padding: 0.875rem 1.5rem;
  font-size: 1rem;
  line-height: 1.2;
}

/* 브라우저 자동완성 배경색 덮어쓰기 */
.login__form input[data-v-45f5edd7]:-webkit-autofill,
.login__form input[data-v-45f5edd7]:-webkit-autofill:hover,
.login__form input[data-v-45f5edd7]:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px var(--surface-color) inset;
  box-shadow: 0 0 0px 1000px var(--surface-color) inset;
  -webkit-text-fill-color: var(--text-primary);
  caret-color: var(--text-primary);
  transition: background-color 9999s ease-out 0s;
  border-radius: 0;
}
.login__form input[data-v-45f5edd7]:-webkit-autofill:first-child {
  border-top-right-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}
.login__footer[data-v-45f5edd7] {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border-color);
  text-align: center;
}
.login__about-link[data-v-45f5edd7] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-secondary);
  text-decoration: none;
  font-size: 0.95rem;
  transition: all 0.2s;
  padding: 0.5rem 1rem;
  border-radius: 0.375rem;
}
.login__about-link[data-v-45f5edd7]:hover {
  color: var(--primary-color);
  background: var(--surface-muted);
}
.login__about-link i[data-v-45f5edd7] {
  font-size: 1rem;
}
.login__kakao[data-v-45f5edd7] {
  width: 100%;
  margin-top: 0.75rem;
  padding: 0.875rem 1.5rem;
  background: var(--brand-kakao);
  color: var(--color-black);
  border: none;
  border-radius: 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}
.login__kakao[data-v-45f5edd7]:hover:not(:disabled) {
  filter: brightness(0.95);
}
.login__kakao[data-v-45f5edd7]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.login__actions[data-v-45f5edd7] {
  display: flex;
  justify-content: flex-end;
  margin-top: -0.5rem;
  margin-bottom: 0.5rem;
}


.callback-container[data-v-3b1335e8] {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  background-color: var(--background-color);
  color: var(--text-primary);
}
.callback-card[data-v-3b1335e8] {
  text-align: center;
  padding: 2rem;
  background: var(--surface-color);
  border-radius: 1rem;
  box-shadow: var(--shadow-sm);
  max-width: 400px;
  width: 100%;
}
.callback-icon[data-v-3b1335e8] {
  font-size: 3rem;
  color: var(--brand-kakao);
  margin-bottom: 1.5rem;
}
.callback-title[data-v-3b1335e8] {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.callback-desc[data-v-3b1335e8] {
  color: var(--text-secondary);
}

/* Container */
.guide[data-v-d4948df9] {
  background: var(--background-color);
  color: var(--text-primary);
  width: 100%;
  height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

/* Navigation */
.guide-nav[data-v-d4948df9] {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--surface-color);
  border-bottom: 1px solid var(--border-color);
  transition: box-shadow 0.3s;
}
.guide-nav--scrolled[data-v-d4948df9] {
  box-shadow: var(--shadow-sm);
}
.guide-nav__inner[data-v-d4948df9] {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0.75rem 1.5rem;
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.guide-nav__inner[data-v-d4948df9]::-webkit-scrollbar {
  display: none;
}
.guide-nav__link[data-v-d4948df9] {
  color: var(--text-secondary);
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 500;
  white-space: nowrap;
  padding: 0.25rem 0;
  border-bottom: 2px solid transparent;
  transition: all 0.2s;
}
.guide-nav__link[data-v-d4948df9]:hover {
  color: var(--primary-color);
}
.guide-nav__link--active[data-v-d4948df9] {
  color: var(--primary-color);
  font-weight: 600;
  border-bottom-color: var(--primary-color);
}

/* Section */
.guide-section[data-v-d4948df9] {
  min-height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5rem 1.5rem;
}
.guide-section--alt[data-v-d4948df9] {
  background: var(--surface-color);
}
.guide-section--cta[data-v-d4948df9] {
  min-height: 40vh;
  background: linear-gradient(135deg, var(--surface-primary-soft), transparent);
}
.guide-container[data-v-d4948df9] {
  max-width: 900px;
  width: 100%;
  margin: 0 auto;
}
.guide-section__title[data-v-d4948df9] {
  font-size: 2rem;
  font-weight: 700;
  margin: 0 0 1rem;
  color: var(--text-primary);
  text-align: center;
}
.guide-section__desc[data-v-d4948df9] {
  font-size: 1.1rem;
  color: var(--text-secondary);
  text-align: center;
  margin: 0 0 2.5rem;
  line-height: 1.6;
}

/* Hero */
.guide-hero[data-v-d4948df9] {
  min-height: 60vh;
  background: linear-gradient(135deg, var(--surface-color), var(--background-color));
}
.guide-hero__content[data-v-d4948df9] {
  text-align: center;
}
.guide-hero__title[data-v-d4948df9] {
  font-size: 2.75rem;
  font-weight: 800;
  color: var(--text-primary);
  margin: 0 0 1rem;
  line-height: 1.3;
}
.guide-hero__badge[data-v-d4948df9] {
  display: inline-block;
  padding: 0.35rem 1rem;
  background: var(--surface-primary-soft);
  color: var(--primary-color);
  font-size: 0.85rem;
  font-weight: 600;
  border-radius: 2rem;
  margin-bottom: 1.25rem;
}
.guide-hero__desc[data-v-d4948df9] {
  font-size: 1.15rem;
  color: var(--text-secondary);
  margin: 0 auto 0.5rem;
  line-height: 1.7;
  max-width: 800px;
}
.guide-hero__desc[data-v-d4948df9]:last-of-type {
  margin-bottom: 2.5rem;
}
.guide-hero__pains[data-v-d4948df9] {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: center;
  margin-bottom: 1.5rem;
}
.guide-hero__pain[data-v-d4948df9] {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.6rem 1.25rem;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 0.75rem;
  max-width: 500px;
  width: 100%;
}
.guide-hero__pain .material-symbols-rounded[data-v-d4948df9] {
  font-size: 1.25rem;
  color: var(--text-secondary);
  flex-shrink: 0;
}
.guide-hero__pain p[data-v-d4948df9] {
  font-size: 0.95rem;
  color: var(--text-secondary);
  margin: 0;
  line-height: 1.5;
}
.guide-hero__resolve[data-v-d4948df9] {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--primary-color);
  margin: 0 0 2rem;
}
.guide-hero__scroll[data-v-d4948df9] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  margin-top: 2rem;
  color: var(--text-tertiary, var(--text-secondary));
  font-size: 0.8rem;
  opacity: 0.6;
  animation: guideScrollBounce-d4948df9 2s infinite;
}
.guide-hero__scroll .material-symbols-rounded[data-v-d4948df9] {
  font-size: 1.25rem;
}
@keyframes guideScrollBounce-d4948df9 {
0%, 100% { transform: translateY(0);
}
50% { transform: translateY(6px);
}
}

/* Buttons */
.guide-btn[data-v-d4948df9] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.75rem;
  border-radius: 0.5rem;
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s;
  cursor: pointer;
  border: 2px solid transparent;
}
.guide-btn .material-symbols-rounded[data-v-d4948df9] {
  font-size: 1.15rem;
}
.guide-btn--primary[data-v-d4948df9] {
  background: var(--primary-color);
  color: var(--color-white);
  border-color: var(--primary-color);
}
.guide-btn--primary[data-v-d4948df9]:hover {
  background: var(--primary-hover);
  border-color: var(--primary-hover);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.guide-btn--secondary[data-v-d4948df9] {
  background: transparent;
  color: var(--primary-color);
  border-color: var(--border-color);
}
.guide-btn--secondary[data-v-d4948df9]:hover {
  border-color: var(--primary-color);
  background: var(--surface-primary-soft);
}

/* Screen Layout */
.guide-layout__title[data-v-d4948df9] {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 1.25rem;
  text-align: center;
}
.guide-layout__screen[data-v-d4948df9] {
  border: 2px solid var(--border-color);
  border-radius: 0.75rem;
  overflow: hidden;
  margin-bottom: 1rem;
}
.guide-layout__topbar[data-v-d4948df9] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background: var(--surface-color);
  border-bottom: 2px solid var(--border-color);
}
.guide-layout__body[data-v-d4948df9] {
  display: flex;
  min-height: 120px;
}
.guide-layout__sidebar[data-v-d4948df9] {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  width: 200px;
  flex-shrink: 0;
  background: var(--surface-color);
  border-right: 2px solid var(--border-color);
}
.guide-layout__content[data-v-d4948df9] {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  flex: 1;
  background: var(--background-color);
}
.guide-layout__topbar .material-symbols-rounded[data-v-d4948df9],
.guide-layout__sidebar .material-symbols-rounded[data-v-d4948df9],
.guide-layout__content .material-symbols-rounded[data-v-d4948df9] {
  font-size: 1.35rem;
  color: var(--primary-color);
  flex-shrink: 0;
  margin-top: 0.1rem;
}
.guide-layout__topbar strong[data-v-d4948df9],
.guide-layout__sidebar strong[data-v-d4948df9],
.guide-layout__content strong[data-v-d4948df9] {
  display: block;
  font-size: 0.85rem;
  color: var(--text-primary);
  margin-bottom: 0.2rem;
}
.guide-layout__topbar p[data-v-d4948df9],
.guide-layout__sidebar p[data-v-d4948df9],
.guide-layout__content p[data-v-d4948df9] {
  font-size: 0.78rem;
  color: var(--text-secondary);
  margin: 0;
  line-height: 1.5;
}

/* Permission Notice */
.guide-notice[data-v-d4948df9] {
  padding: 0 1.5rem;
}
.guide-notice__inner[data-v-d4948df9] {
  max-width: 900px;
  margin: -2rem auto 0;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.75rem 1.25rem;
  background: var(--surface-warning-soft);
  border: 1px solid var(--color-warning);
  border-radius: 0.5rem;
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.5;
}
.guide-notice__inner .material-symbols-rounded[data-v-d4948df9] {
  color: var(--color-warning);
  font-size: 1.25rem;
  flex-shrink: 0;
}
.guide-notice__inner p[data-v-d4948df9] {
  margin: 0;
}

/* Workflow */
.guide-workflow[data-v-d4948df9] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  position: relative;
}
.guide-workflow__item[data-v-d4948df9] {
  text-align: center;
  padding: 1.5rem 1rem;
  position: relative;
}
.guide-workflow__icon[data-v-d4948df9] {
  font-size: 2rem;
  color: var(--primary-color);
  display: block;
  margin-bottom: 0.75rem;
}
.guide-workflow__title[data-v-d4948df9] {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
  color: var(--text-primary);
}
.guide-workflow__desc[data-v-d4948df9] {
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.5;
  margin: 0;
}
.guide-workflow--verification[data-v-d4948df9] {
  display: flex;
  justify-content: center;
}
.guide-workflow__arrow[data-v-d4948df9] {
  position: absolute;
  right: -0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--border-color);
  font-size: 1.5rem;
  z-index: 1;
}
.guide-workflow__arrow .material-symbols-rounded[data-v-d4948df9] {
  font-size: 1.5rem;
}

/* Feature Guide */
.guide-feature[data-v-d4948df9] {
  max-width: 700px;
  margin: 0 auto;
}
.guide-feature__header[data-v-d4948df9] {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.guide-feature__icon[data-v-d4948df9] {
  font-size: 2.5rem;
  color: var(--primary-color);
  background: var(--surface-primary-soft);
  padding: 0.75rem;
  border-radius: 1rem;
}
.guide-feature__title[data-v-d4948df9] {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 0.25rem;
  color: var(--text-primary);
}
.guide-feature__subtitle[data-v-d4948df9] {
  font-size: 0.95rem;
  color: var(--text-secondary);
  margin: 0;
}
.guide-feature__list[data-v-d4948df9] {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
}
.guide-feature__list li[data-v-d4948df9] {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--text-secondary);
  margin-bottom: 0.5rem;
}
.guide-feature__list li .material-symbols-rounded[data-v-d4948df9] {
  color: var(--primary-color);
  font-size: 1.15rem;
  margin-top: 0.2rem;
  flex-shrink: 0;
}
.guide-feature__tip[data-v-d4948df9] {
  display: flex;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  background: var(--surface-primary-soft);
  border: 1px solid var(--border-subtle);
  border-radius: 0.5rem;
  margin-bottom: 1.5rem;
}
.guide-feature__tip .material-symbols-rounded[data-v-d4948df9] {
  color: var(--primary-color);
  font-size: 1.25rem;
  flex-shrink: 0;
  margin-top: 0.1rem;
}
.guide-feature__tip p[data-v-d4948df9] {
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0;
}

/* Tips */
.guide-tips[data-v-d4948df9] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}
.guide-tips__card[data-v-d4948df9] {
  padding: 1.25rem;
  background: var(--background-color);
  border: 1px solid var(--border-color);
  border-radius: 0.75rem;
  text-align: center;
  transition: transform 0.2s;
}
.guide-tips__card[data-v-d4948df9]:hover {
  transform: translateY(-4px);
}
.guide-tips__icon[data-v-d4948df9] {
  font-size: 2rem;
  color: var(--primary-color);
  margin-bottom: 0.75rem;
  display: block;
}
.guide-tips__card h3[data-v-d4948df9] {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
  color: var(--text-primary);
}
.guide-tips__card p[data-v-d4948df9] {
  font-size: 0.85rem;
  color: var(--text-secondary);
  margin: 0;
  line-height: 1.5;
}

/* FAQ */
.guide-faq[data-v-d4948df9] {
  max-width: 700px;
  margin: 0 auto;
}
.guide-faq__item[data-v-d4948df9] {
  border: 1px solid var(--border-color);
  border-radius: 0.5rem;
  margin-bottom: 0.5rem;
  overflow: hidden;
  background: var(--surface-color);
}
/* 시각 스타일은 AppButton ghost가 담당 */
.guide-faq__header[data-v-d4948df9] {
  height: auto;
  padding: 0.75rem 1rem;
}
.guide-faq__header .material-symbols-rounded[data-v-d4948df9] {
  color: var(--primary-color);
  font-size: 1.25rem;
}
.guide-faq__question[data-v-d4948df9] {
  font-size: 0.95rem;
  font-weight: 600;
  flex: 1;
}
.guide-faq__body[data-v-d4948df9] {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-out;
}
.guide-faq__item--open .guide-faq__body[data-v-d4948df9] {
  max-height: 500px;
  transition: max-height 0.5s ease-in;
}
.guide-faq__answer[data-v-d4948df9] {
  padding: 0 1rem 1rem;
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--text-secondary);
  margin: 0;
}

/* Right Side Index */
.guide-index[data-v-d4948df9] {
  position: fixed;
  right: 1.25rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  z-index: 20;
}
.guide-index__dot[data-v-d4948df9] {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--border-color);
  transition: all 0.3s;
  position: relative;
  cursor: pointer;
  text-decoration: none;
}
.guide-index__dot[data-v-d4948df9]:hover {
  background: var(--primary-color);
  transform: scale(1.3);
}
.guide-index__dot--active[data-v-d4948df9] {
  background: var(--primary-color);
  box-shadow: var(--ring-focus);
}
.guide-index__label[data-v-d4948df9] {
  position: absolute;
  right: calc(100% + 0.75rem);
  top: 50%;
  transform: translateY(-50%);
  white-space: nowrap;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-secondary);
  background: var(--surface-color);
  padding: 0.2rem 0.5rem;
  border-radius: 0.25rem;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-sm);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
}
.guide-index__dot:hover .guide-index__label[data-v-d4948df9] {
  opacity: 1;
}
.guide-index__dot--active .guide-index__label[data-v-d4948df9] {
  color: var(--primary-color);
  font-weight: 600;
}

/* Responsive */
@media (max-width: 768px) {
.guide-index[data-v-d4948df9] {
    display: none;
}
.guide-hero__title[data-v-d4948df9] {
    font-size: 2rem;
}
.guide-section[data-v-d4948df9] {
    padding: 3rem 1rem;
    min-height: auto;
}
.guide-hero[data-v-d4948df9] {
    min-height: 50vh;
}
.guide-workflow[data-v-d4948df9] {
    grid-template-columns: 1fr;
    gap: 0.5rem;
}
.guide-workflow__arrow[data-v-d4948df9] {
    display: none;
}
.guide-layout__body[data-v-d4948df9] {
    flex-direction: column;
}
.guide-layout__sidebar[data-v-d4948df9] {
    width: 100%;
    border-right: none;
    border-bottom: 2px solid var(--border-color);
}
.guide-feature__header[data-v-d4948df9] {
    flex-direction: column;
    text-align: center;
}
.guide-hero__pain[data-v-d4948df9] {
    max-width: 100%;
}
.guide-tips[data-v-d4948df9] {
    grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 480px) {
.guide-nav[data-v-d4948df9] {
    display: none;
}
.guide-hero__title[data-v-d4948df9] {
    font-size: 1.5rem;
}
.guide-section__title[data-v-d4948df9] {
    font-size: 1.5rem;
}
.guide-tips[data-v-d4948df9] {
    grid-template-columns: 1fr;
}
.guide-nav__link[data-v-d4948df9] {
    font-size: 0.75rem;
}
}

.not-found[data-v-071430af] {
  text-align: center;
  padding: 4rem 1rem;
}
.not-found__cta[data-v-071430af] {
  display: inline-flex;
  margin-top: 1rem;
  background: var(--primary-color);
  color: white;
  padding: 0.75rem 1.25rem;
  border-radius: 0.75rem;
}

.swatch[data-v-9973ae3b] {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--surface-color-secondary);
  overflow: hidden;
  cursor: pointer;
  transition: border-color var(--transition-base);
}
.swatch[data-v-9973ae3b]:hover {
  border-color: var(--primary-color);
}
.swatch__chip[data-v-9973ae3b] {
  height: 64px;
  border-bottom: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: center;
  background-image:
    linear-gradient(45deg, rgba(127, 127, 127, 0.18) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(127, 127, 127, 0.18) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgba(127, 127, 127, 0.18) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(127, 127, 127, 0.18) 75%);
  background-size: 16px 16px;
  background-position: 0 0, 0 8px, 8px -8px, -8px 0;
}
.swatch__sample[data-v-9973ae3b] {
  font-size: 18px;
  font-weight: var(--font-weight-semibold);
  background: var(--surface-color);
  padding: 2px 8px;
  border-radius: var(--radius-sm);
}
.swatch__meta[data-v-9973ae3b] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--space-2) var(--space-3);
}
.swatch__name[data-v-9973ae3b] {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--font-sm);
  color: var(--text-primary);
}
.swatch__value[data-v-9973ae3b] {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--font-xs);
  color: var(--text-secondary);
}
.swatch__desc[data-v-9973ae3b] {
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.swatch__copied[data-v-9973ae3b] {
  font-size: var(--font-xs);
  color: var(--primary-color);
  font-weight: var(--font-weight-medium);
}

.swatch-grid[data-v-12aea30c] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--surface-color);
  color: var(--text-primary);
}

.block[data-v-fa6d1282] { padding: var(--space-4); background: var(--surface-color); color: var(--text-primary);
}
.note[data-v-fa6d1282] { font-size: var(--font-xs); color: var(--text-secondary); margin: var(--space-3) 0 0;
}
.note code[data-v-fa6d1282] { font-family: ui-monospace, monospace;
}
.hover-card[data-v-fa6d1282] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--space-3);
  margin-bottom: var(--space-2);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  font-size: var(--font-xs);
  cursor: pointer;
}
.hover-card[data-v-fa6d1282]:hover {
  background: var(--primary-color);
  color: var(--color-white);
  transform: translateX(8px);
  border-color: var(--primary-color);
}
.hover-card code[data-v-fa6d1282] { font-family: ui-monospace, monospace; font-weight: var(--font-weight-semibold);
}
.hover-card span[data-v-fa6d1282] { color: var(--text-tertiary);
}
.hover-card:hover span[data-v-fa6d1282] { color: var(--color-white); opacity: 0.85;
}
.hover-hint[data-v-fa6d1282] { font-style: italic;
}
.pagepad-wrap[data-v-fa6d1282] {
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.pagepad-page[data-v-fa6d1282] {
  padding: var(--space-4) var(--page-pad-x);
  background: var(--surface-muted);
}
.pagepad-content[data-v-fa6d1282] {
  background: var(--primary-color);
  color: var(--color-white);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  font-size: var(--font-xs);
}
.pagepad-content code[data-v-fa6d1282] { font-family: ui-monospace, monospace;
}
.shell[data-v-fa6d1282] {
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--surface-color-secondary);
}
.shell-topbar[data-v-fa6d1282] {
  height: var(--app-header-height);
  display: flex;
  align-items: center;
  padding: 0 var(--space-4);
  background: var(--surface-color);
  border-bottom: 1px solid var(--border-color);
  font-size: var(--font-xs);
  color: var(--text-secondary);
}
.shell-topbar code[data-v-fa6d1282] { font-family: ui-monospace, monospace; color: var(--text-primary);
}
.shell-body[data-v-fa6d1282] { display: flex; height: 180px;
}
.shell-sidebar[data-v-fa6d1282] {
  width: 200px;
  border-right: 1px solid var(--border-color);
  background: var(--surface-color);
  display: flex;
  flex-direction: column;
}
.shell-sidebar-header[data-v-fa6d1282] {
  height: var(--app-header-height);
  display: flex;
  align-items: center;
  padding: 0 var(--space-3);
  border-bottom: 1px solid var(--border-color);
  font-size: var(--font-xs);
  color: var(--text-primary);
}
.shell-sidebar-content[data-v-fa6d1282] {
  padding: var(--space-3);
  font-size: var(--font-xs);
  color: var(--text-secondary);
}
.shell-main[data-v-fa6d1282] {
  flex: 1;
  padding: var(--space-4);
  font-size: var(--font-xs);
  color: var(--text-secondary);
}
.list-demo[data-v-fa6d1282] {
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--surface-color-secondary);
}
.list-row[data-v-fa6d1282] {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  height: var(--list-row-h);
  padding: 0 var(--space-3);
  border-bottom: 1px solid var(--border-subtle);
  font-size: var(--font-xs);
  color: var(--text-primary);
}
.list-row[data-v-fa6d1282]:nth-child(even) { background: var(--surface-stripe);
}
.list-row[data-v-fa6d1282]:last-child { border-bottom: none;
}
.dot[data-v-fa6d1282] {
  width: 8px;
  height: 8px;
  border-radius: var(--radius-full);
  background: var(--primary-color);
}
.scroll-demo[data-v-fa6d1282] {
  height: 140px;
  overflow-y: auto;
  padding: var(--space-3);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
}
.scroll-line[data-v-fa6d1282] {
  padding: var(--space-2) 0;
  font-size: var(--font-xs);
  color: var(--text-secondary);
  border-bottom: 1px solid var(--border-subtle);
}
.scroll-line[data-v-fa6d1282]:last-child { border-bottom: none;
}
.fixed-grid[data-v-fa6d1282] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-3);
}
.fixed-swatch[data-v-fa6d1282] {
  border-radius: var(--radius-md);
  padding: var(--space-3);
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: var(--font-xs);
}
.fixed-swatch code[data-v-fa6d1282] { font-family: ui-monospace, monospace; font-weight: var(--font-weight-semibold);
}

.grid[data-v-e57a757f] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--surface-color);
}
.card[data-v-e57a757f] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: center;
  justify-content: center;
  background: var(--primary-color);
  color: var(--color-white);
  height: 100px;
  padding: var(--space-3);
}
.card-name[data-v-e57a757f] { font-family: ui-monospace, monospace; font-size: var(--font-sm);
}
.card-px[data-v-e57a757f] { font-size: var(--font-xs); opacity: 0.85;
}
.card-desc[data-v-e57a757f] { font-size: var(--font-xs); opacity: 0.7; margin-top: 4px;
}
.examples[data-v-e57a757f] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--surface-color);
  color: var(--text-primary);
}
.ex[data-v-e57a757f] {
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  padding: var(--space-3) var(--space-4);
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: var(--font-xs);
}
.ex code[data-v-e57a757f] { font-family: ui-monospace, monospace;
}
.ex.large[data-v-e57a757f] { padding: var(--space-5) var(--space-6);
}
.ex.pill[data-v-e57a757f] { padding: var(--space-2) var(--space-4);
}

.grid[data-v-fc018b5c] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-5);
  padding: var(--space-6);
  background: var(--surface-color);
}
.card[data-v-fc018b5c] {
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  height: 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: var(--text-primary);
}
.card-name[data-v-fc018b5c] { font-family: ui-monospace, monospace; font-size: var(--font-sm);
}
.card-desc[data-v-fc018b5c] { font-size: var(--font-xs); color: var(--text-secondary);
}
.rings[data-v-fc018b5c] {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding: var(--space-6);
  background: var(--surface-color);
  align-items: flex-start;
}
.ring-btn[data-v-fc018b5c] {
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--border-color);
  background: var(--surface-color-secondary);
  color: var(--text-primary);
  border-radius: var(--radius-md);
  font-size: var(--font-xs);
  cursor: pointer;
  font-family: inherit;
}
.ring-btn code[data-v-fc018b5c] { font-family: ui-monospace, monospace;
}
.backdrop-demo[data-v-fc018b5c] {
  padding: var(--space-4);
  background: var(--surface-color);
}
.backdrop-bg[data-v-fc018b5c] {
  position: relative;
  height: 240px;
  border-radius: var(--radius-md);
  overflow: hidden;
  background:
    linear-gradient(135deg, var(--primary-color) 0%, var(--color-purple) 100%);
}
.backdrop-bg[data-v-fc018b5c]::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--backdrop-bg);
  backdrop-filter: var(--backdrop-blur);
}
.backdrop-panel[data-v-fc018b5c] {
  position: absolute;
  inset: var(--space-6);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  color: var(--text-primary);
  font-size: var(--font-xs);
  z-index: 1;
}
.backdrop-panel code[data-v-fc018b5c] { font-family: ui-monospace, monospace;
}
.backdrop-panel span[data-v-fc018b5c] { color: var(--text-secondary);
}

.bars[data-v-b88d56e6] { padding: var(--space-4); background: var(--surface-color); color: var(--text-primary);
}
.bar-row[data-v-b88d56e6] {
  display: grid;
  grid-template-columns: 220px 60px 100px 1fr;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) 0;
  border-bottom: 1px solid var(--border-subtle);
}
.bar-row[data-v-b88d56e6]:last-child { border-bottom: none;
}
.bar-name[data-v-b88d56e6] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--font-sm);
}
.bar-px[data-v-b88d56e6] { color: var(--text-secondary); font-size: var(--font-xs);
}
.bar-rem[data-v-b88d56e6] { color: var(--text-tertiary); font-size: var(--font-xs); font-family: ui-monospace, monospace;
}
.bar-wrap[data-v-b88d56e6] { display: flex; align-items: center;
}
.bar[data-v-b88d56e6] {
  height: 12px;
  background: var(--primary-color);
  border-radius: var(--radius-sm);
  min-width: 1px;
}
.control-sample[data-v-b88d56e6] {
  display: inline-flex;
  align-items: center;
  padding: 0 var(--space-3);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  color: var(--text-secondary);
  font-size: var(--font-xs);
}
.cards[data-v-b88d56e6] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--surface-color);
}
.card[data-v-b88d56e6] {
  background: var(--primary-color);
  border-radius: var(--radius-md);
}
.card-inner[data-v-b88d56e6] {
  background: var(--surface-color-secondary);
  border-radius: var(--radius-sm);
  color: var(--text-primary);
  padding: var(--space-2);
  font-family: ui-monospace, monospace;
  font-size: var(--font-xs);
}
.gap-stack[data-v-b88d56e6] { padding: var(--space-4); background: var(--surface-color); display: flex; flex-direction: column; gap: var(--space-3);
}
.gap-row[data-v-b88d56e6] {
  display: flex;
  align-items: center;
  background: var(--surface-color-secondary);
  border-radius: var(--radius-md);
  padding: var(--space-2) var(--space-3);
}
.gap-label[data-v-b88d56e6] {
  width: 110px;
  font-family: ui-monospace, monospace;
  font-size: var(--font-xs);
  color: var(--text-secondary);
}
.gap-box[data-v-b88d56e6] {
  width: 28px;
  height: 28px;
  background: var(--primary-color);
  border-radius: var(--radius-sm);
}

.rows[data-v-dbf17981] {
  padding: var(--space-4);
  background: var(--surface-color);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.row[data-v-dbf17981] {
  display: grid;
  grid-template-columns: 220px 60px 1fr;
  gap: var(--space-3);
  align-items: center;
  border-bottom: 1px solid var(--border-subtle);
  padding-bottom: var(--space-3);
}
.row[data-v-dbf17981]:last-child { border-bottom: none; padding-bottom: 0;
}
.row-name[data-v-dbf17981] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--font-sm);
}
.row-px[data-v-dbf17981] { color: var(--text-secondary); font-size: var(--font-xs);
}
.sample[data-v-dbf17981] { color: var(--text-primary);
}
.weight-sample[data-v-dbf17981] { font-size: var(--font-base);
}
.lh-grid[data-v-dbf17981] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--surface-color);
  color: var(--text-primary);
}
.lh-card[data-v-dbf17981] {
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: var(--space-3);
  background: var(--surface-color-secondary);
}
.lh-card p[data-v-dbf17981] { margin: var(--space-2) 0 0; font-size: var(--font-xs); color: var(--text-secondary);
}
.combo[data-v-dbf17981] { padding: var(--space-4); background: var(--surface-color);
}
.combo-card[data-v-dbf17981] {
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  max-width: 480px;
}
.combo-title[data-v-dbf17981] {
  margin: 0;
  font-size: var(--font-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
}
.combo-meta[data-v-dbf17981] {
  margin: var(--space-1) 0;
  font-size: var(--font-xs);
  color: var(--text-tertiary);
}
.combo-body[data-v-dbf17981] {
  margin: var(--space-2) 0 0;
  font-size: var(--font-xs);
  color: var(--text-secondary);
  line-height: var(--line-normal);
}
.combo-body code[data-v-dbf17981] {
  font-family: ui-monospace, monospace;
  background: var(--surface-muted);
  padding: 1px 4px;
  border-radius: var(--radius-sm);
  font-size: var(--font-xs);
}

.stage[data-v-6796727c] {
  position: relative;
  height: 360px;
  margin: var(--space-4);
  background: var(--surface-color-secondary);
  border: 1px dashed var(--border-color);
  border-radius: var(--radius-md);
}
.layer[data-v-6796727c] {
  position: absolute;
  width: 200px;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  color: var(--color-white);
  font-size: var(--font-xs);
  display: flex;
  flex-direction: column;
  gap: 2px;
  box-shadow: var(--shadow-md);
}
.layer code[data-v-6796727c] {
  font-family: ui-monospace, monospace;
  font-weight: var(--font-weight-semibold);
}
.layer-grid[data-v-6796727c] {
  margin: 0 var(--space-4) var(--space-4);
  font-size: var(--font-xs);
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.layer-grid__row[data-v-6796727c] {
  display: grid;
  grid-template-columns: 220px 80px 1fr;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border-bottom: 1px solid var(--border-subtle);
}
.layer-grid__row[data-v-6796727c]:last-child { border-bottom: none;
}
.layer-grid__head[data-v-6796727c] {
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
  background: var(--surface-color-secondary);
}
.layer-grid code[data-v-6796727c] {
  font-family: ui-monospace, monospace;
}

.hint[data-v-cb45b876] { font-size: var(--font-xs); color: var(--text-tertiary);
}
.hint code[data-v-cb45b876] { font-family: ui-monospace, monospace; color: var(--text-secondary);
}

.col[data-v-e99fd4c8] { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); color: var(--text-primary);
}
.row[data-v-e99fd4c8] { display: flex; gap: var(--space-2); align-items: center;
}
.hint[data-v-e99fd4c8] { font-size: var(--font-xs); color: var(--text-tertiary);
}
.list-row[data-v-e99fd4c8] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-2) var(--space-3);
  border-bottom: 1px solid var(--border-subtle);
  font-size: var(--font-sm);
}
.row-actions[data-v-e99fd4c8] { display: flex; gap: var(--space-1);
}
.row-label[data-v-e99fd4c8] { color: var(--text-primary);
}

.row[data-v-4f8aab49] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: center;
  padding: var(--space-4);
  
  color: var(--text-primary);
}
.col[data-v-4f8aab49] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  
  color: var(--text-primary);
}
.playground[data-v-4f8aab49] {
  padding: var(--space-6);
  
  color: var(--text-primary);
  min-height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.col[data-v-dcaa00a6] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  
  color: var(--text-primary);
}
.bulk-row[data-v-dcaa00a6] {
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border-subtle);
}
.row[data-v-dcaa00a6] { padding: var(--space-1) 0;
}

.col[data-v-8bc43ff6] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  
  color: var(--text-primary);
}
.field[data-v-8bc43ff6] { display: flex; flex-direction: column; gap: 4px;
}
.label[data-v-8bc43ff6] { font-size: var(--font-xs); color: var(--text-secondary);
}
.value[data-v-8bc43ff6] { font-size: var(--font-xs); color: var(--text-secondary); font-family: ui-monospace, monospace;
}

.col[data-v-032347bd] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  
  color: var(--text-primary);
}
.value[data-v-032347bd] { font-size: var(--font-xs); color: var(--text-secondary); font-family: ui-monospace, monospace;
}

.trigger-row[data-v-be49ce31] {
  display: flex;
  gap: var(--space-3);
  align-items: center;
  flex-wrap: wrap;
  padding: var(--space-4);
  
  color: var(--text-primary);
}

.col[data-v-82625241] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  
  color: var(--text-primary);
}
.field[data-v-82625241] { display: flex; flex-direction: column; gap: 2px;
}
.field[data-v-82625241] .app-number-input {
  height: var(--control-height-md);
  padding: 0 var(--control-padding-x-md);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  
  color: var(--text-primary);
  font-size: var(--font-md);
}
.value[data-v-82625241] { font-size: var(--font-xs); color: var(--text-secondary); font-family: ui-monospace, monospace;
}

.col[data-v-515862d0] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  
  color: var(--text-primary);
}
.group[data-v-515862d0] {
  display: flex;
  gap: var(--space-4);
  flex-wrap: wrap;
}
.value[data-v-515862d0] { font-size: var(--font-xs); color: var(--text-secondary); font-family: ui-monospace, monospace;
}

.col[data-v-6df35a13] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  
  color: var(--text-primary);
}
.hint[data-v-6df35a13] { font-size: var(--font-xs); color: var(--text-tertiary);
}

.col[data-v-282859c3] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  
  color: var(--text-primary);
}

.col[data-v-1a57bb97] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  
  color: var(--text-primary);
}
.row[data-v-1a57bb97] { display: flex; gap: var(--space-2); align-items: center;
}
.value[data-v-1a57bb97] { font-size: var(--font-xs); color: var(--text-secondary); font-family: ui-monospace, monospace;
}
.hint[data-v-1a57bb97] { font-size: var(--font-xs); color: var(--text-tertiary);
}

.col[data-v-a1450c16] { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4);  color: var(--text-primary);
}
.value[data-v-a1450c16] { font-size: var(--font-xs); color: var(--text-secondary); font-family: ui-monospace, monospace;
}

.hint[data-v-b97ec864] { font-size: var(--font-xs); color: var(--text-tertiary);
}

.stage[data-v-1dbd995a] {
  height: 500px;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
  display: flex;
}
.stage[data-v-1dbd995a] > * { flex: 1;
}
.hint[data-v-1dbd995a] { font-size: var(--font-xs); color: var(--text-tertiary); margin-top: var(--space-2);
}

.info-block[data-v-ff765b8d] {
  padding: var(--space-3);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  color: var(--text-primary);
}
.info-block h3[data-v-ff765b8d] { margin: 0; font-size: var(--font-base); font-weight: var(--font-weight-semibold);
}
.info-block p[data-v-ff765b8d] { margin: 0; font-size: var(--font-xs); color: var(--text-secondary); line-height: var(--line-normal);
}
.info-block code[data-v-ff765b8d] { font-family: ui-monospace, monospace; background: var(--surface-muted); padding: 1px 4px; border-radius: var(--radius-sm);
}

.row[data-v-8f781b63] { display: flex; gap: var(--space-2); flex-wrap: wrap;
}
.state-panel[data-v-8f781b63] {
  padding: var(--space-3);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  font-size: var(--font-xs);
  color: var(--text-primary);
}
.state-panel code[data-v-8f781b63] { font-family: ui-monospace, monospace; color: var(--primary-color);
}
.hint[data-v-8f781b63] { font-size: var(--font-xs); color: var(--text-tertiary);
}
.hint code[data-v-8f781b63] { font-family: ui-monospace, monospace; color: var(--text-secondary);
}

.col[data-v-c99e9bca] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  
  color: var(--text-primary);
}
.value[data-v-c99e9bca] { font-size: var(--font-xs); color: var(--text-secondary); font-family: ui-monospace, monospace;
}

.col[data-v-d05d9769] .app-button { align-self: flex-start;
}

.filter-row[data-v-84c4693d] { display: flex; gap: var(--space-2); flex-wrap: wrap;
}

.stage[data-v-303fcf37] {
  height: 480px;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.hint[data-v-303fcf37] { font-size: var(--font-xs); color: var(--text-tertiary);
}

.col[data-v-cad7de84] { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4);  color: var(--text-primary);
}
.value[data-v-cad7de84] { font-size: var(--font-xs); color: var(--text-secondary); font-family: ui-monospace, monospace;
}

.col[data-v-95833257] { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); color: var(--text-primary);
}
.col p[data-v-95833257] { margin: 0; color: var(--text-secondary); font-size: var(--font-sm);
}

/* 글로벌 .col 사용 */

.warn[data-v-8b0f64a2] {
  padding: var(--space-4);
  background: var(--surface-warning-soft);
  border: 1px solid var(--color-warning);
  border-radius: var(--radius-md);
  color: var(--text-primary);
}
.warn h3[data-v-8b0f64a2] { margin: 0 0 var(--space-2); font-size: var(--font-base);
}
.warn p[data-v-8b0f64a2] { margin: 0 0 var(--space-2); font-size: var(--font-xs); color: var(--text-secondary); line-height: var(--line-normal);
}
.warn code[data-v-8b0f64a2] { font-family: ui-monospace, monospace; background: var(--surface-muted); padding: 1px 4px; border-radius: var(--radius-sm);
}

.loading-state[data-v-be22835b] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  gap: 1rem;
  color: var(--text-secondary);
}
.spinner[data-v-be22835b] {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 3px solid var(--border-subtle);
  border-top-color: var(--primary-color);
  animation: spin-be22835b 0.8s linear infinite;
}
@keyframes spin-be22835b {
to {
    transform: rotate(360deg);
}
}

.col[data-v-496dbb6c] { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); color: var(--text-primary);
}

.markdown-viewer[data-v-633b5908] {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.markdown-viewer__loading[data-v-633b5908],
.markdown-viewer__error[data-v-633b5908],
.markdown-viewer__empty[data-v-633b5908] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  gap: 1rem;
  color: var(--text-secondary);
}
.markdown-viewer__loading i[data-v-633b5908] {
  font-size: 2rem;
  color: var(--primary-color);
}
.markdown-viewer__content[data-v-633b5908] {
  width: 100%;
  height: 100%;
  padding: 0 1.5rem 1.5rem 1.5rem;
  box-sizing: border-box;
  overflow-y: auto;
  overflow-x: hidden;
  background: var(--surface-color);
  font-size: 0.9rem; /* 전체 폰트 크기를 약간 작게 */
  font-family: -apple-system, BlinkMacSystemFont, 'Pretendard Variable', 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', '맑은 고딕', sans-serif; /* macOS 스타일 폰트 우선 적용 */
}
.markdown-viewer__content[data-v-633b5908] h1,
.markdown-viewer__content[data-v-633b5908] h2,
.markdown-viewer__content[data-v-633b5908] h3,
.markdown-viewer__content[data-v-633b5908] h4,
.markdown-viewer__content[data-v-633b5908] h5,
.markdown-viewer__content[data-v-633b5908] h6 {
  margin-top: 2rem;
  margin-bottom: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.markdown-viewer__content[data-v-633b5908] h1 {
  font-size: 1.8rem; /* 2rem -> 1.8rem (0.9배) */
  border-bottom: 2px solid var(--border-color);
  padding-bottom: 0.5rem;
}
.markdown-viewer__content[data-v-633b5908] h2 {
  font-size: 1.35rem; /* 1.5rem -> 1.35rem (0.9배) */
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 0.5rem;
}
.markdown-viewer__content[data-v-633b5908] h3 {
  font-size: 1.125rem; /* 1.25rem -> 1.125rem (0.9배) */
}
.markdown-viewer__content[data-v-633b5908] p {
  margin-bottom: 1rem;
  color: var(--text-primary);
}
.markdown-viewer__content[data-v-633b5908] ul,
.markdown-viewer__content[data-v-633b5908] ol {
  margin-bottom: 1rem;
  padding-left: 2rem;
  color: var(--text-primary);
}
.markdown-viewer__content[data-v-633b5908] li {
  margin-bottom: 0.5rem;
}
.markdown-viewer__content[data-v-633b5908] code {
  background: var(--surface-color-secondary);
  padding: 0.2rem 0.4rem;
  border-radius: 4px;
  font-family: 'Courier New', monospace;
  font-size: 0.9em;
  color: var(--primary-color);
}
.markdown-viewer__content[data-v-633b5908] pre {
  background: var(--surface-color-secondary);
  padding: 1rem;
  border-radius: 8px;
  overflow-x: auto;
  margin-bottom: 1rem;
  border: 1px solid var(--border-color);
}
.markdown-viewer__content[data-v-633b5908] pre code {
  background: transparent;
  padding: 0;
  color: var(--text-primary);
}
.markdown-viewer__content[data-v-633b5908] blockquote {
  border-left: 4px solid var(--primary-color);
  padding-left: 1rem;
  margin-left: 0;
  margin-bottom: 1rem;
  color: var(--text-secondary);
  font-style: italic;
}
.markdown-viewer__content[data-v-633b5908] table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1rem;
}
.markdown-viewer__content[data-v-633b5908] th,
.markdown-viewer__content[data-v-633b5908] td {
  border: 1px solid var(--border-color);
  padding: 0.5rem;
  text-align: left;
  color: var(--text-primary);
}
.markdown-viewer__content[data-v-633b5908] th {
  background: var(--surface-color-secondary);
  font-weight: 600;
}
.markdown-viewer__content[data-v-633b5908] a {
  color: var(--primary-color);
  text-decoration: none;
}
.markdown-viewer__content[data-v-633b5908] a:hover {
  text-decoration: underline;
}
.markdown-viewer__content[data-v-633b5908] a:visited {
  color: var(--primary-color);
}
.markdown-viewer__content[data-v-633b5908] hr {
  border: none;
  border-top: 1px solid var(--border-color);
  margin: 2rem 0;
}
.error-message[data-v-633b5908] {
  color: var(--color-danger);
  font-size: 0.875rem;
  margin: 0;
  text-align: center;
}
@media (max-width: 768px) {
.markdown-viewer__content[data-v-633b5908] {
    padding: 0 1rem 1rem 1rem;
}
.markdown-viewer__content[data-v-633b5908] h1 {
    font-size: 1.35rem; /* 1.5rem -> 1.35rem (0.9배) */
}
.markdown-viewer__content[data-v-633b5908] h2 {
    font-size: 1.125rem; /* 1.25rem -> 1.125rem (0.9배) */
}
.markdown-viewer__content[data-v-633b5908] h3 {
    font-size: 0.99rem; /* 1.1rem -> 0.99rem (0.9배) */
}
}

.col[data-v-b9be7853] { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); color: var(--text-primary);
}
.hint[data-v-b9be7853] { font-size: var(--font-xs); color: var(--text-tertiary);
}

.row[data-v-4e914051] { display: flex; gap: var(--space-2); flex-wrap: wrap;
}
.hint[data-v-4e914051] { font-size: var(--font-xs); color: var(--text-tertiary);
}
.hint code[data-v-4e914051] { font-family: ui-monospace, monospace; color: var(--text-secondary);
}

.stage[data-v-498258bb] {
  height: 400px;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.col[data-v-4acf243c] { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4);  color: var(--text-primary); align-items: flex-start;
}
.value[data-v-4acf243c] { font-size: var(--font-xs); color: var(--text-secondary); font-family: ui-monospace, monospace;
}
.hint[data-v-4acf243c] { font-size: var(--font-xs); color: var(--text-tertiary);
}

.col[data-v-255a4008] { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4);  color: var(--text-primary);
}
.value[data-v-255a4008] { font-size: var(--font-xs); color: var(--text-secondary); font-family: ui-monospace, monospace;
}

.pagination[data-v-0fc81f49] {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1rem;
}
.pagination-info[data-v-0fc81f49] {
  justify-self: start;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.pagination-pages[data-v-0fc81f49] {
  justify-self: center;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.pagination-controls[data-v-0fc81f49] {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.pagination-btn[data-v-0fc81f49] {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border-color);
  background: var(--surface-color);
  color: var(--text-secondary);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s;
}
.pagination-btn[data-v-0fc81f49]:hover:not(:disabled) {
  background: var(--bg-hover);
  color: var(--text-primary);
  border-color: var(--border-hover);
}
.pagination-btn[data-v-0fc81f49]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background: var(--bg-item);
}
.pagination-number[data-v-0fc81f49] {
  min-width: 32px;
  height: 32px;
  padding: 0 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text-secondary);
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.875rem;
  transition: all 0.2s;
}
.pagination-number[data-v-0fc81f49]:hover {
  background: var(--bg-hover);
  color: var(--text-primary);
}
.pagination-number.active[data-v-0fc81f49] {
  background: var(--primary-color);
  color: white;
  font-weight: 500;
}
.pagination-dots[data-v-0fc81f49] {
  color: var(--text-tertiary);
  font-size: 0.875rem;
}
.pagination-range[data-v-0fc81f49] {
  color: var(--text-secondary);
  font-size: 0.875rem;
}
.page-size-selector[data-v-0fc81f49] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.page-size-label[data-v-0fc81f49] {
  color: var(--text-secondary);
  font-size: 0.875rem;
}

/* 페이지 크기 콤보: 값 크기에 맞춘 가변 너비 */
.page-size-multiselect[data-v-0fc81f49] {
  display: inline-block;
}
.page-size-multiselect[data-v-0fc81f49] .multi-select-control {
  min-width: 0;
  padding-right: 1.75rem; /* 화살표 공간 */
}
.page-size-multiselect[data-v-0fc81f49] .multi-select-dropdown {
  min-width: 4.5rem;
  width: max-content;
}

/* 폰 대응: 영역 압축 + "페이지당" 라벨 숨김 + 1열로 떨어지면 가운데 정렬 */
@media (max-width: 640px) {
.pagination[data-v-0fc81f49] {
    grid-template-columns: 1fr;
    gap: 0.5rem;
    margin-top: 0.75rem;
}
.pagination-info[data-v-0fc81f49],
  .pagination-pages[data-v-0fc81f49],
  .pagination-controls[data-v-0fc81f49] {
    justify-self: center;
}
.pagination-pages[data-v-0fc81f49] {
    gap: 0.25rem;
}
.pagination-btn[data-v-0fc81f49],
  .pagination-number[data-v-0fc81f49] {
    width: 28px;
    height: 28px;
    min-width: 28px;
    font-size: 0.8125rem;
}
.pagination-number[data-v-0fc81f49] {
    padding: 0 0.35rem;
}
.page-size-label[data-v-0fc81f49] {
    display: none;
}
.page-size-selector[data-v-0fc81f49] {
    gap: 0.25rem;
}

  /* 단일 페이지: 페이지 버튼 영역이 비어있으므로 정보 ↔ 페이지크기 콤보를 좌우 분할 */
.pagination--single-page[data-v-0fc81f49] {
    grid-template-columns: 1fr auto;
}
.pagination--single-page .pagination-info[data-v-0fc81f49] {
    justify-self: start;
}
.pagination--single-page .pagination-pages[data-v-0fc81f49] {
    display: none;
}
.pagination--single-page .pagination-controls[data-v-0fc81f49] {
    justify-self: end;
}
}

.col[data-v-db148470] { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); color: var(--text-primary);
}
.value[data-v-db148470] { font-size: var(--font-xs); color: var(--text-secondary); font-family: ui-monospace, monospace;
}
.hint[data-v-db148470] { font-size: var(--font-xs); color: var(--text-tertiary);
}

.output[data-v-ddda73d8] {
  padding: var(--space-3);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  font-size: var(--font-xs);
  color: var(--text-primary);
}
.output pre[data-v-ddda73d8] { margin: var(--space-2) 0 0; white-space: pre-wrap; word-break: break-all;
}

.state-panel[data-v-46572f9c] {
  padding: var(--space-3);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  font-size: var(--font-xs);
  color: var(--text-primary);
}
.state-panel code[data-v-46572f9c] { font-family: ui-monospace, monospace; color: var(--primary-color);
}
.hint[data-v-46572f9c] { font-size: var(--font-xs); color: var(--text-tertiary);
}

.row-set[data-v-18578625] { display: flex; flex-direction: column; gap: var(--space-2);
}
.cell[data-v-18578625] { display: flex; align-items: center; gap: var(--space-3); font-size: var(--font-sm); color: var(--text-secondary);
}
.fake-table-head[data-v-18578625] {
  display: flex;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--surface-color-secondary);
  overflow: hidden;
}
.fake-th[data-v-18578625] {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-3);
  border-right: 1px solid var(--border-color);
  cursor: pointer;
  font-size: var(--font-xs);
  font-weight: var(--font-weight-medium);
  color: var(--text-primary);
}
.fake-th[data-v-18578625]:last-child { border-right: none;
}
.fake-th[data-v-18578625]:hover { background: var(--surface-hover);
}
.state-panel[data-v-18578625] {
  padding: var(--space-3);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  font-size: var(--font-xs);
  color: var(--text-primary);
}
.state-panel code[data-v-18578625] { font-family: ui-monospace, monospace; color: var(--primary-color);
}
.hint[data-v-18578625] { font-size: var(--font-xs); color: var(--text-tertiary);
}

.col[data-v-1d7c08ab] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  
  color: var(--text-primary);
}
.panel[data-v-1d7c08ab] {
  padding: var(--space-3);
  background: var(--surface-color-secondary);
  border-radius: var(--radius-md);
  font-size: var(--font-xs);
}
.panel code[data-v-1d7c08ab] { font-family: ui-monospace, monospace; color: var(--primary-color);
}

.info[data-v-a506b228] {
  padding: var(--space-4);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  color: var(--text-primary);
}
.info h3[data-v-a506b228] { margin: 0 0 var(--space-2); font-size: var(--font-base);
}
.info p[data-v-a506b228] { margin: 0 0 var(--space-2); font-size: var(--font-xs); color: var(--text-secondary); line-height: var(--line-normal);
}
.info code[data-v-a506b228] { font-family: ui-monospace, monospace; background: var(--surface-muted); padding: 1px 4px; border-radius: var(--radius-sm);
}
.info a[data-v-a506b228] { color: var(--primary-color);
}

.col.tall[data-v-48964995] { height: 480px;
}
.col.tall[data-v-48964995] .terminal-wrapper { flex: 1; height: 100%;
}
.hint[data-v-48964995] { font-size: var(--font-xs); color: var(--text-tertiary);
}

.row[data-v-bae1fbaa] { display: flex; gap: var(--space-2); flex-wrap: wrap;
}
.state-panel[data-v-bae1fbaa] {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: var(--space-3);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  font-size: var(--font-xs);
  color: var(--text-primary);
}
.state-panel code[data-v-bae1fbaa] { font-family: ui-monospace, monospace; color: var(--primary-color);
}
.hint[data-v-bae1fbaa] { font-size: var(--font-xs); color: var(--text-tertiary);
}
.fake-toast-stage[data-v-bae1fbaa] { display: flex; flex-direction: column; gap: var(--space-2); align-items: center;
}
.fake-toast[data-v-bae1fbaa] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  background: var(--surface-muted);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-md);
  min-width: 260px;
  max-width: 90%;
  font-size: var(--font-sm);
  color: var(--text-primary);
}
.fake-toast.success[data-v-bae1fbaa] { border-color: var(--color-success);
}
.fake-toast.error[data-v-bae1fbaa] { border-color: var(--color-danger);
}
.fake-toast.warning[data-v-bae1fbaa] { border-color: var(--color-warning);
}
.fake-toast i[data-v-bae1fbaa] { font-size: var(--font-base);
}
.fake-toast.success i[data-v-bae1fbaa] { color: var(--color-success);
}
.fake-toast.error i[data-v-bae1fbaa] { color: var(--color-danger);
}
.fake-toast.warning i[data-v-bae1fbaa] { color: var(--color-warning);
}
.fake-toast.info i[data-v-bae1fbaa] { color: var(--primary-color);
}
.msg[data-v-bae1fbaa] { flex: 1;
}
.close-btn[data-v-bae1fbaa] {
  border: none;
  background: transparent;
  color: var(--text-tertiary);
  cursor: pointer;
  font-size: 1.1rem;
  padding: 0 var(--space-1);
}
.close-btn[data-v-bae1fbaa]:hover { color: var(--text-primary);
}
.fade-enter-active[data-v-bae1fbaa], .fade-leave-active[data-v-bae1fbaa] { transition: opacity 0.2s;
}
.fade-enter-from[data-v-bae1fbaa], .fade-leave-to[data-v-bae1fbaa] { opacity: 0;
}

.col[data-v-3ca35601] { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4);  color: var(--text-primary); width: 100%;
}
.row[data-v-3ca35601] { display: flex; gap: var(--space-3); align-items: center; flex-wrap: wrap;
}
.inline[data-v-3ca35601] { display: flex; align-items: center; gap: var(--space-2); font-size: var(--font-sm); color: var(--text-secondary);
}

.col[data-v-b6f87cf9] { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4);  color: var(--text-primary);
}
.value[data-v-b6f87cf9] { font-size: var(--font-xs); color: var(--text-secondary); font-family: ui-monospace, monospace;
}

/* .vertical-split-container 는 사용처(TodoWorkTypeMeta 등) scoped 안에만 정의된 클래스라
   글로벌이 안 잡힘. 스토리 stage 에 동일 속성을 직접 부여 + 분리대 시각 강조. */
.splitter-stage[data-v-a9c76299] {
  width: 100%;
  height: 360px;
  display: flex;
  flex-direction: row;
  overflow: hidden;
  position: relative;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  margin: var(--space-4) 0;
  background: var(--surface-color);
}
.pane[data-v-a9c76299] {
  padding: var(--space-3);
  color: var(--text-primary);
  font-size: var(--font-xs);
  overflow: auto;
  box-sizing: border-box;
}
.pane.left[data-v-a9c76299] { background: var(--surface-color); flex: 0 0 280px;
}
.pane.right[data-v-a9c76299] { background: var(--surface-color-secondary); flex: 1 1 auto; min-width: 0;
}
.pane h4[data-v-a9c76299] { margin: 0 0 var(--space-2); font-size: var(--font-sm); font-weight: var(--font-weight-semibold);
}
.pane p[data-v-a9c76299] { margin: 0 0 var(--space-2); color: var(--text-secondary);
}
.hint[data-v-a9c76299] { color: var(--text-tertiary); font-family: ui-monospace, monospace;
}

/* 분리대 자체가 8px muted 라 잘 안 보일 수 있음 — 데모에서 강조 */
.splitter-stage[data-v-a9c76299] .vertical-split-resizer {
  background: var(--border-color);
}
.splitter-stage[data-v-a9c76299] .vertical-split-resizer:hover,
.splitter-stage[data-v-a9c76299] .vertical-split-resizer.resizing {
  background: var(--primary-color);
}
.splitter-stage[data-v-a9c76299] .vertical-split-resizer-handle {
  background: var(--text-tertiary);
}

.stage[data-v-c1f1e703] {
  height: 480px;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--surface-color);
  margin: var(--space-4);
}
/* 768px 이상 강제 — 테이블 모드 보장 */
.stage-wide[data-v-c1f1e703] { min-width: 1000px;
}
.hint[data-v-c1f1e703] { margin: 0 var(--space-4) var(--space-4); font-size: var(--font-xs); color: var(--text-tertiary);
}
.state-panel[data-v-c1f1e703] {
  margin: 0 var(--space-4) var(--space-4);
  padding: var(--space-3);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  font-size: var(--font-xs);
  color: var(--text-primary);
}
.state-panel code[data-v-c1f1e703] { font-family: ui-monospace, monospace; color: var(--primary-color);
}

.hint[data-v-279123fe] { font-size: var(--font-xs); color: var(--text-tertiary);
}

.hint[data-v-26d91181] { font-size: var(--font-xs); color: var(--text-tertiary);
}

.stage[data-v-851db785] {
  height: 600px;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--surface-color);
  margin: var(--space-4);
}

.info[data-v-b065164a] {
  padding: var(--space-4);
  background: var(--surface-color-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  color: var(--text-primary);
}
.info h3[data-v-b065164a] { margin: 0 0 var(--space-2); font-size: var(--font-base);
}
.info p[data-v-b065164a] { margin: 0 0 var(--space-2); font-size: var(--font-xs); color: var(--text-secondary); line-height: var(--line-normal);
}
.info code[data-v-b065164a] { font-family: ui-monospace, monospace; background: var(--surface-muted); padding: 1px 4px; border-radius: var(--radius-sm);
}
.info a[data-v-b065164a] { color: var(--primary-color);
}
