@charset "UTF-8";
/* 새 auisoft.net의 브랜드 색과 로고를 문서에 적용합니다. 공통 데모와 제품 CSS에는 영향을 주지 않습니다. */
body.docs-site {
    --demo-font: "Pretendard Variable", Pretendard, -apple-system, "Segoe UI", "Malgun Gothic", sans-serif;
    --docs-blue: #337ab7; --docs-blue-dark: #286090; --docs-ink: #1c2733; --docs-muted: #5a6878;
    --docs-line: #dde6ef; --docs-surface: #f4f8fb; --docs-charcoal: #222729; --docs-background: #fff;
    margin: 0; color: var(--docs-ink); background: var(--docs-background); font-family: var(--demo-font); line-height: 1.6;
}
.docs-site :is(.docs-header, .docs-header *, .docs-home-intro, .docs-chapters, .docs-chapters *, .docs-footer, .docs-breadcrumb) { box-sizing: border-box; }
.docs-site a { color: var(--docs-blue-dark); }
.docs-site a:hover { color: var(--docs-blue); }
.docs-site :is(a, button, summary, input):focus-visible { outline: 2px solid var(--docs-blue); outline-offset: 4px; }
.docs-site :is(h1, h2, h3) { color: var(--docs-ink); }
.docs-site :is(h1, h2, h3, tr[id], a[name]) { scroll-margin-top: 28px; }
/* 웹용 헤더는 고정되므로 API 앵커가 메뉴 아래에 가리지 않게 합니다. 패키지 간격은 유지합니다. */
.docs-website :is(h1, h2, h3, tr[id], a[name]) { scroll-margin-top: 85px; }
/* 웹 문서의 숨김 제목에는 이전 #title의 여백을 적용하지 않고 본문 배치에서도 제외합니다. */
.docs-site #title.docs-site-context { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
/* 홈페이지의 흰색 헤더와 사각 로고를 사용하고 문서 제목이 함께 들어갈 여백을 둡니다. */
.docs-header { border-bottom: 1px solid var(--docs-line); background: var(--docs-background); }
.docs-header-inner { max-width: 1600px; min-height: 80px; margin: auto; padding: 16px 32px; display: flex; align-items: center; gap: 24px; }
.docs-site #logo-bar.docs-brand { float: none; margin: 0; padding: 0; display: inline-flex; align-items: center; gap: 12px; color: var(--docs-charcoal); text-decoration: none; flex-shrink: 0; }
.docs-brand img { display: block; width: 40px; height: 40px; }
.docs-brand > span { display: flex; flex-direction: column; gap: 3px; font-size: 24px; font-weight: 800; line-height: 1.05; }
.docs-brand small { color: var(--docs-muted); font-size: 12px; font-weight: 600; }
/* 패키지 문서는 회사 메뉴 없이 로고와 제품 제목을 연결하고 좁은 화면에서는 제목만 줄바꿈합니다. */
.docs-site #logo-bar.docs-package-brand { min-width: 0; max-width: 100%; }
.docs-package-brand img { flex-shrink: 0; }
.docs-site #title.docs-package-title { display: block; min-width: 0; padding: 0; color: var(--docs-charcoal); font-size: 26px; font-weight: 700; line-height: 1.25; }
.docs-site #title.docs-context { padding: 0 0 0 24px; display: block; border-left: 1px solid var(--docs-line); font-size: 14px; color: var(--docs-muted); font-weight: 500; line-height: 1.5; }
.docs-navigation { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.docs-navigation a, .docs-mobile-navigation a { padding: 9px 12px; border-radius: 6px; white-space: nowrap; font-size: 14px; font-weight: 600; color: var(--docs-ink); text-decoration: none; }
.docs-navigation a:hover, .docs-navigation a[aria-current] { color: var(--docs-blue); background: var(--docs-surface); }
.docs-site a.docs-download { background: #337ab7; color: #fff; margin-left: 8px; padding: 10px 16px; border-radius: 8px; }
.docs-site a.docs-download:hover { background: #286090; }
.docs-mobile-navigation { display: none; }
.docs-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px 12px; max-width: 1200px; padding: 28px 0 12px; margin: auto; color: var(--docs-muted); font-size: 14px; }
.docs-breadcrumb [aria-current] { overflow-wrap: anywhere; }
.docs-site :is(.MainContent, .classDescContent, .summarySection) { max-width: 1200px; margin-left: auto; margin-right: auto; }
.docs-site .MainContent > h1 { margin-top: 8px; margin-bottom: 24px; }
.docs-site .classHeaderTable { display: none; }
.docs-site .MainContent > h2 { margin-top: 32px; padding-top: 12px; border-top: 1px solid var(--docs-line); }
.docs-site .MainContent > table:not(.summaryTable) { border: 1px solid var(--docs-line); color: var(--docs-ink); }
.docs-site .MainContent > table:not(.summaryTable) :is(th, td) { padding: 12px; border: 1px solid var(--docs-line); overflow-wrap: anywhere; }
.docs-site .MainContent > table:not(.summaryTable) th { background: var(--docs-surface); color: var(--docs-muted); }
.docs-site .browser_table th:first-child, .docs-site .browser_table td:first-child { width: auto; }
.docs-site .browser_table { width: 100%; }
.docs-site .browser_table th { border-bottom: 1px solid var(--docs-line) !important; padding: 12px 8px !important; }
.docs-site code:not(pre code) { background: var(--docs-surface); border-radius: 4px; padding: 2px 5px; color: var(--docs-blue-dark); }
.docs-site :is(pre, xmp) { border-radius: 8px; }
/* API 검색과 표는 기존 필드 ID, 정렬 순서와 검색 동작을 그대로 사용합니다. */
.docs-site .searchbox { border: 1px solid #bacddd; border-radius: 8px; background: var(--docs-surface); }
.docs-site .MainContent > .searchbox { max-width: 550px; margin-bottom: 20px; }
.docs-site .searchbox:focus-within { border-color: var(--docs-blue); box-shadow: 0 0 0 3px #eaf2f9; }
.docs-site .searchbox .keyword { position: relative; background: none; height: 48px; }
/* 검색 아이콘은 배경색이 없는 선으로 그려 밝은 검색창과 자연스럽게 이어집니다. */
.docs-site .searchbox .keyword::before { content: ''; position: absolute; left: 16px; top: 14px; width: 12px; height: 12px; border: 2px solid var(--docs-blue); border-radius: 50%; }
.docs-site .searchbox .keyword::after { content: ''; position: absolute; left: 29px; top: 29px; width: 7px; height: 2px; background: var(--docs-blue); transform: rotate(45deg); }
.docs-site .searchbox input { background: transparent; color: var(--docs-ink); margin-top: 12px; font-weight: 500; }
.docs-site .searchbox input:focus-visible { outline: none; }
.docs-site .summaryTable { border: 1px solid var(--docs-line); margin: 20px 0 32px; }
.docs-site .summaryTable th { background: var(--docs-surface); color: var(--docs-muted); height: auto; padding: 14px 20px; border-bottom: 1px solid var(--docs-line); text-align: left; }
.docs-site .summaryTable td { border-top: 1px solid var(--docs-line); padding: 24px 20px; vertical-align: top; overflow-wrap: anywhere; }
.docs-site .summaryTable th:first-child, .docs-site .summaryTable td:first-child { width: 250px; }
.docs-site .summarySignature { width: auto; margin: 0; padding: 12px; text-align: left; border-color: var(--docs-line); background: var(--docs-surface); border-radius: 8px; overflow-wrap: anywhere; }
.docs-site .signatureLink { line-height: 1.6; font-weight: 700; color: var(--docs-blue-dark); }
.docs-site .summaryTableDescription > .label { color: var(--docs-muted); }
.docs-site .prop_table, .docs-site .prop_table td { border-color: var(--docs-line); background: var(--docs-surface); }
.docs-site .mcp-status { background: var(--docs-surface); border: 1px solid var(--docs-line); border-left: 3px solid var(--docs-blue); border-radius: 8px; padding: 20px 24px; }
.docs-site .mcp-toc { gap: 8px 20px; border-color: var(--docs-line); }
.docs-site.mcp-guide details { border-color: var(--docs-line); border-radius: 8px; padding: 16px 20px; }
.docs-site.mcp-guide summary { color: var(--docs-ink); }
.docs-site.mcp-guide td, .docs-site.mcp-guide th { border-color: var(--docs-line); }
.docs-site .docs-footer { max-width: 1200px; padding: 24px 0 32px; margin: 48px auto 0; border-top: 1px solid var(--docs-line); display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 13px; color: var(--docs-muted); }
.docs-footer > div { display: flex; flex-wrap: wrap; gap: 20px; }
/* 홈은 목차의 내용과 순서를 유지하며 각 문서의 시작점을 넉넉한 클릭 영역으로 제공합니다. */
.docs-home-intro { background: var(--docs-surface); border-bottom: 1px solid var(--docs-line); }
.docs-home-intro-inner { max-width: 1200px; margin: auto; padding: 48px 0 32px; }
body.docs-home h1 { margin: 0 0 12px; }
body.docs-home p.docs-lead { margin: 0; color: var(--docs-muted); }
.docs-products { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.docs-site .docs-products .doc_menu_item { width: auto; padding: 10px 22px; border: 1px solid var(--docs-line); border-radius: 8px; font-size: 16.8px; line-height: 1.2; background: #fff; text-decoration: none; }
.docs-site .docs-products .doc_menu_item_selected { background: var(--docs-charcoal); border-color: var(--docs-charcoal); color: #fff; }
body.docs-home .MainContent > h2 { border: 0; margin: 28px 0 16px; padding: 0; }
body.docs-home .MainContent .main_ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 0; margin: 0; list-style: none; counter-reset: doc-chapter; }
body.docs-home .main_ul > li { counter-increment: doc-chapter; margin: 0; font-size: 18px !important; }
.docs-chapters a { display: flex; align-items: center; gap: 18px; min-height: 104px; padding: 22px 24px; height: 100%; border: 1px solid var(--docs-line); border-radius: 12px; color: var(--docs-ink); line-height: 1.5; text-decoration: none; transition: border-color .15s, background-color .15s; }
.docs-chapters a::before { content: counter(doc-chapter, decimal-leading-zero); color: var(--docs-blue); font-size: 15px; font-weight: 700; flex-shrink: 0; }
.docs-chapters a::after { content: '→'; margin-left: auto; color: var(--docs-muted); font-size: 20px; }
.docs-chapters a:hover { border-color: var(--docs-blue); background: var(--docs-surface); text-decoration: none; }
.docs-chapters strong { display: block; font-size: 18px; font-weight: 600; }
.docs-chapters small { display: block; color: var(--docs-muted); font-size: 14px; line-height: 1.6; margin-top: 5px; }
/* 자주 사용하는 개발 API 문서는 같은 목차 안에서 색과 표식으로 강조합니다. 키보드 포커스도 동일하게 표시합니다. */
.docs-chapter-api > a { border-color: var(--docs-blue); background: #edf5fc; box-shadow: inset 3px 0 0 var(--docs-blue); }
.docs-chapter-api > a:hover, .docs-chapter-api > a:focus-visible { border-color: var(--docs-blue-dark); background: #e2effa; }
.docs-chapter-api strong { color: var(--docs-blue-dark); font-weight: 700; }
.docs-chapter-api > a::after { color: var(--docs-blue-dark); font-weight: 700; }
.docs-chapters .docs-chapter-badge { display: inline-block; margin-bottom: 6px; padding: 3px 8px; border-radius: 4px; background: var(--docs-blue); color: #fff; font-size: 12px; font-weight: 700; line-height: 1.5; }
.docs-related { margin-top: 28px; padding: 20px 24px; background: var(--docs-surface); border: 1px solid var(--docs-line); border-radius: 12px; }
body.docs-home .docs-related p { margin: 0 0 8px; }
body.docs-home .docs-related p:last-child { margin: 0; }
/* TypeDoc는 검색과 왼쪽 탐색 구조를 유지하고 동일한 브랜드 외곽과 색을 사용합니다. */
.docs-typedoc { --color-link: var(--docs-blue-dark); --color-background: var(--docs-background); --color-background-secondary: var(--docs-surface); --color-text: var(--docs-ink); --color-text-aside: var(--docs-muted); }
.docs-typedoc .tsd-page-toolbar { position: relative; top: auto; background: var(--docs-surface); border-color: var(--docs-line); }
.docs-typedoc .docs-breadcrumb { padding: 20px 32px; max-width: 1600px; }
.docs-typedoc > .docs-footer { margin-left: 32px; margin-right: 32px; max-width: none; }
/* TypeDoc에서 이미 제공하는 테마 선택과 OS 설정은 새 헤더에도 반영합니다. */
:root[data-theme="dark"] body.docs-typedoc {
    --docs-background: #1c2733; --docs-ink: #e5eff7; --docs-muted: #b2c2d3; --docs-charcoal: #e5eff7;
    --docs-line: #3b4b5a; --docs-surface: #273541; --docs-blue: #87bdeb; --docs-blue-dark: #a2cef2;
}
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) body.docs-typedoc {
        --docs-background: #1c2733; --docs-ink: #e5eff7; --docs-muted: #b2c2d3; --docs-charcoal: #e5eff7;
        --docs-line: #3b4b5a; --docs-surface: #273541; --docs-blue: #87bdeb; --docs-blue-dark: #a2cef2;
    }
}
@media (max-width: 1264px) {
    .docs-site :is(.MainContent, .classDescContent, .summarySection, .docs-breadcrumb, .docs-footer) { margin-left: 32px; margin-right: 32px; }
    .docs-home-intro-inner { padding-left: 32px; padding-right: 32px; }
    .docs-context { display: none !important; }
}
@media (max-width: 760px) {
    .docs-header-inner { min-height: 72px; padding: 16px 20px; }
    .docs-navigation { display: none; }
    .docs-site details.docs-mobile-navigation { display: block; position: relative; margin: 0 0 0 auto; padding: 0; border: 0; }
    .docs-mobile-navigation summary { list-style: none; border: 1px solid var(--docs-line); border-radius: 8px; padding: 9px 12px; cursor: pointer; }
    .docs-mobile-navigation summary::-webkit-details-marker { display: none; }
    .docs-mobile-navigation nav { position: absolute; z-index: 20; right: 0; top: calc(100% + 10px); min-width: 200px; display: flex; flex-direction: column; padding: 8px; border: 1px solid var(--docs-line); border-radius: 10px; background: var(--docs-background); box-shadow: 0 12px 32px #1f4e7914; }
    .docs-site .docs-mobile-navigation .docs-download { margin: 4px 0 0; text-align: center; }
    body.docs-home .MainContent .main_ul { grid-template-columns: 1fr; }
    body.docs-site :is(.MainContent, .classDescContent, .summarySection, .docs-breadcrumb, .docs-footer) { margin-left: 20px; margin-right: 20px; padding-left: 0; padding-right: 0; }
    .docs-home-intro-inner { padding: 32px 20px 28px; }
    .docs-chapters a { min-height: 96px; padding: 18px; gap: 14px; }
    .docs-site .summaryTable { border-left: 0; border-right: 0; }
    .docs-site .summaryTable th:first-child, .docs-site .summaryTable td:first-child { width: auto; }
    .docs-site .summaryTable td { padding: 16px 0; }
    .docs-site .docs-footer { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 640px) {
    /* 이전 표에 thead가 없는 경우에도 세로로 쌓인 API 카드 위의 열 제목을 숨깁니다. */
    .docs-site #summaryTableStyle tr:first-child:not([id]) { display: none; }
    .docs-site #summaryTableStyle td + td { border-top: 0; padding-top: 0; }
}
@media (max-width: 420px) {
    .docs-site #title.docs-package-title { font-size: 23px; }
}
