@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.5;
}
.docs-site :is(.docs-header, .docs-header *, .docs-home-intro, .docs-chapters, .docs-chapters *, .docs-footer, .docs-breadcrumb) { box-sizing: border-box; }
/* 실제 이동 주소가 있는 본문 링크만 파란색으로 구분합니다.
   홈페이지 헤더는 고유한 로고, 메뉴, 버튼 색상과 hover를 사용하므로 본문 링크 규칙에서 제외합니다. */
.docs-site a:where([href]:not([href=""])):not(:where(.auisoft-site-header, .auisoft-site-header *, .aui-grid, .aui-grid *, [class^="aui-grid-"], [class^="aui-grid-"] *, [class*=" aui-grid-"], [class*=" aui-grid-"] *, .aui-pivot, .aui-pivot *, [class^="aui-pivot-"], [class^="aui-pivot-"] *, [class*=" aui-pivot-"], [class*=" aui-pivot-"] *)) { color: var(--docs-blue-dark); }
.docs-site a:where([href]:not([href=""])):hover:not(:where(.auisoft-site-header, .auisoft-site-header *, .aui-grid, .aui-grid *, [class^="aui-grid-"], [class^="aui-grid-"] *, [class*=" aui-grid-"], [class*=" aui-grid-"] *, .aui-pivot, .aui-pivot *, [class^="aui-pivot-"], [class^="aui-pivot-"] *, [class*=" aui-pivot-"], [class*=" aui-pivot-"] *)) { color: var(--docs-blue); }
.docs-site a:not([href]):not(:where(.auisoft-site-header, .auisoft-site-header *, .aui-grid, .aui-grid *, [class^="aui-grid-"], [class^="aui-grid-"] *, [class*=" aui-grid-"], [class*=" aui-grid-"] *, .aui-pivot, .aui-pivot *, [class^="aui-pivot-"], [class^="aui-pivot-"] *, [class*=" aui-pivot-"], [class*=" aui-pivot-"] *)), .docs-site a[href=""]:not(:where(.auisoft-site-header, .auisoft-site-header *, .aui-grid, .aui-grid *, [class^="aui-grid-"], [class^="aui-grid-"] *, [class*=" aui-grid-"], [class*=" aui-grid-"] *, .aui-pivot, .aui-pivot *, [class^="aui-pivot-"], [class^="aui-pivot-"] *, [class*=" aui-pivot-"], [class*=" aui-pivot-"] *)) { color: inherit; text-decoration: none; cursor: inherit; }
.docs-site :is(a, button, summary, input):focus-visible:not(:where(.auisoft-site-header, .auisoft-site-header *, .aui-grid, .aui-grid *, [class^="aui-grid-"], [class^="aui-grid-"] *, [class*=" aui-grid-"], [class*=" aui-grid-"] *, .aui-pivot, .aui-pivot *, [class^="aui-pivot-"], [class^="aui-pivot-"] *, [class*=" aui-pivot-"], [class*=" aui-pivot-"] *)) { outline: 2px solid var(--docs-blue); outline-offset: 4px; }
.docs-site :is(h1, h2, h3):not(:where(.aui-grid, .aui-grid *, [class^="aui-grid-"], [class^="aui-grid-"] *, [class*=" aui-grid-"], [class*=" aui-grid-"] *, .aui-pivot, .aui-pivot *, [class^="aui-pivot-"], [class^="aui-pivot-"] *, [class*=" aui-pivot-"], [class*=" aui-pivot-"] *)) { color: var(--docs-ink); }
.docs-site :is(h1, h2, h3, tr[id], a[name]):not(:where(.aui-grid, .aui-grid *, [class^="aui-grid-"], [class^="aui-grid-"] *, [class*=" aui-grid-"], [class*=" aui-grid-"] *, .aui-pivot, .aui-pivot *, [class^="aui-pivot-"], [class^="aui-pivot-"] *, [class*=" aui-pivot-"], [class*=" aui-pivot-"] *)) { scroll-margin-top: 28px; }
/* 홈페이지의 흰색 헤더와 사각 로고를 사용하고 문서 제목이 함께 들어갈 여백을 둡니다. */
.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 :is(#logo-bar, .docs-brand).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 :is(#title, .docs-context).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):not(:where(.aui-grid, .aui-grid *, [class^="aui-grid-"], [class^="aui-grid-"] *, [class*=" aui-grid-"], [class*=" aui-grid-"] *, .aui-pivot, .aui-pivot *, [class^="aui-pivot-"], [class^="aui-pivot-"] *, [class*=" aui-pivot-"], [class*=" aui-pivot-"] *)) { background: var(--docs-surface); border-radius: 4px; padding: 2px 5px; color: inherit; }
/* 인라인 코드의 문법 토큰도 본문색을 사용하고 별도 코드 블록의 Prism 강조는 유지합니다. */
.docs-site code:not(pre code):not(:where(.aui-grid, .aui-grid *, [class^="aui-grid-"], [class^="aui-grid-"] *, [class*=" aui-grid-"], [class*=" aui-grid-"] *, .aui-pivot, .aui-pivot *, [class^="aui-pivot-"], [class^="aui-pivot-"] *, [class*=" aui-pivot-"], [class*=" aui-pivot-"] *)) * { color: inherit; }
.docs-site :is(pre, xmp):not(:where(.aui-grid, .aui-grid *, [class^="aui-grid-"], [class^="aui-grid-"] *, [class*=" aui-grid-"], [class*=" aui-grid-"] *, .aui-pivot, .aui-pivot *, [class^="aui-pivot-"], [class^="aui-pivot-"] *, [class*=" aui-pivot-"], [class*=" aui-pivot-"] *)) { 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; }
/* API 이름은 링크가 아니므로 색 대신 크기와 굵기로 강조합니다. */
.docs-site .signatureLink { line-height: 1.6; font-size: 16px; font-weight: 700; color: inherit; }
.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 p.docs-eyebrow { margin: 0 0 12px; color: var(--docs-blue); font-weight: 700; }
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 > span { min-width: 0; }
.docs-chapters a::after {
    content: ''; flex: 0 0 20px; height: 20px; margin-left: auto; background-color: var(--docs-muted);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3 10h14M11 4l6 6-6 6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3 10h14M11 4l6 6-6 6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.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 문서만 Grid와 같은 배경, 테두리와 표식으로 강조합니다. */
.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; }
/* 기존 SVG 이동 아이콘은 글자색 대신 마스크의 배경색으로 강조합니다. */
.docs-chapter-api > a::after { background-color: var(--docs-blue-dark); }
.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; }
}

/* Pivot의 기존 검색 폭과 이름 상자만 재배치하며 검색 ID와 본문 계약은 유지합니다. */
.docs-site .MainContent > .searchbox { box-sizing: border-box; width: min(550px, 100%); margin-left: 0; }
.docs-site .MainContent > .searchbox .keyword { width: 100%; }
.docs-site .MainContent > .searchbox input { width: calc(100% - 55px); }
body.demo-typography.docs-site .searchbox input { font-size: 18px !important; line-height: 23px; }
.docs-site .summarySignature { line-height: 1.6; }
.docs-site .MainContent > .classDescContent { margin: 0; padding: 0; }
/* 설명 문서 안의 이미지와 표, TypeDoc 코드가 모바일 본문 폭을 늘리지 않게 합니다. */
.docs-site .MainContent > :is(p, div) > img { max-width: 100%; height: auto; }
.docs-site .MainContent table:not(:where(.aui-grid, .aui-grid *, [class^="aui-grid-"], [class^="aui-grid-"] *, [class*=" aui-grid-"], [class*=" aui-grid-"] *, .aui-pivot, .aui-pivot *, [class^="aui-pivot-"], [class^="aui-pivot-"] *, [class*=" aui-pivot-"], [class*=" aui-pivot-"] *)) { max-width: 100%; }
.docs-site .MainContent > .summaryTable { table-layout: fixed; width: 100%; }
@media (max-width: 760px) {
    .docs-site #summaryTableStyle :is(tbody, tr, td) { display: block; width: auto; }
    .docs-site #summaryTableStyle tr:first-child:not([id]) { display: none; }
    .docs-site #summaryTableStyle td + td { border-top: 0; padding-top: 0; }
    body.docs-site .MainContent > .classDescContent { margin: 0; }
}
