
body {
    font-family: "Segoe UI", Tahoma, Arial, sans-serif;
    margin: 0;
    color: #1e2a36;
    background: #f5f7fa;
    scrollbar-width: thin;
    scrollbar-color: #9eb0c0 #e8eef4;
}
html.theme-dark,
body.theme-dark {
    scrollbar-color: #5c7186 #1a2430;
}
a {
    color: #1a5f91;
    text-decoration: none;
}
a:hover {
    text-decoration: underline;
}
.page {
    padding: 14px 18px;
}
.box {
    border: 1px solid #d8d8d8;
    background: #fafafa;
    padding: 12px;
    margin: 12px 0;
}
.nav {
    background: #edf3f8;
    border: 1px solid #c4d3e1;
    padding: 8px 10px;
    margin-bottom: 14px;
}
.nav-right {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
.nav a {
    margin-right: 14px;
}
.top-links {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid #c4d3e1;
    border-radius: 12px;
    background: #edf3f8;
    box-shadow: 0 8px 22px rgba(49, 86, 120, 0.08);
    flex-wrap: wrap;
    padding: 10px 12px;
    margin-bottom: 14px;
}
.top-nav-right {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}
.breadcrumb {
    font-size: 13px;
    color: #3b5268;
}
.top-nav-right a {
    margin-left: 0;
}
.doc-version {
    display: inline-flex;
    align-items: center;
    border: 1px solid #adc4d8;
    border-radius: 999px;
    background: #ffffff;
    color: #31526e;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    padding: 5px 9px;
}
.member-path {
    margin: 0 0 10px 0;
    font-size: 26px;
    font-weight: 600;
}
.type-location {
    display: flex;
    align-items: baseline;
    gap: 4px;
}
.type-hierarchy {
    margin: 14px 0 10px 0;
    font-size: 13px;
    line-height: 1.6;
}
.type-hierarchy-node {
    white-space: nowrap;
}
.type-hierarchy-current {
    font-weight: 600;
}
.type-interfaces {
    margin-top: 10px;
}
.h1 {
    margin: 0 0 10px 0;
    font-size: 28px;
}
.h2 {
    margin-top: 24px;
    margin-bottom: 10px;
    font-size: 20px;
    border-bottom: 1px solid #d7d7d7;
    padding-bottom: 4px;
}
.muted {
    color: #666;
}
.code {
    font-family: Consolas, "Courier New", monospace;
    white-space: pre-wrap;
    background: #f4f7f9;
    border: 1px solid #d1d9e0;
    padding: 10px;
    overflow: auto;
}
.doc-code {
    margin-top: 20px;
    margin-bottom: 20px;
}
.tok-kw {
    color: #0b5cad;
    font-weight: 600;
}
.tok-type {
    color: #8a3ea8;
}
.tok-num {
    color: #b2571d;
}
.tok-str {
    color: #c23b4b;
}
.tok-cmt {
    color: #6b7f93;
    font-style: italic;
}
.tok-op {
    color: #3a4f62;
}
.tok-ann {
    color: #0f7a74;
}
ul.flat {
    list-style: none;
    padding-left: 0;
}
ul.flat li {
    margin: 6px 0;
}
.member {
    border-top: 1px solid #e1e1e1;
    padding-top: 12px;
    margin-top: 12px;
}
.member:first-child {
    border-top: none;
    padding-top: 0;
    margin-top: 0;
}
.member-summary {
    border: 1px solid #d3dde6;
    border-radius: 8px;
    background: #fafcff;
    padding: 12px 14px;
    margin: 12px 0;
}
.member-table-wrap {
    border: 1px solid #ccd8e3;
    border-radius: 8px;
    overflow: hidden;
    margin: 12px 0 16px 0;
}
.member-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}
.member-table thead th {
    text-align: left;
    background: #eef4fa;
    color: #2f465b;
    font-weight: 600;
    padding: 10px 12px;
    border-bottom: 1px solid #d4e0ea;
}
.member-table td {
    vertical-align: top;
    padding: 10px 12px;
    border-top: 1px solid #e4ecf3;
}
.member-col-type {
    width: 28%;
}
.member-col-name {
    width: 34%;
}
.member-col-desc {
    width: 38%;
}
.member-name-link {
    font-weight: 600;
}
.member-summary .member-title {
    font-weight: 600;
    margin-bottom: 6px;
}
.member-summary .member-signature {
    margin: 8px 0;
}
.member-detail-block {
    border: 1px solid #d3dde6;
    border-radius: 8px;
    background: #f8fbfe;
    padding: 14px;
    margin: 14px 0;
}
.member-meta-list {
    margin: 0;
    padding-left: 18px;
}
.member-meta-list li {
    margin: 6px 0;
}
.inherited-block {
    margin: 8px 0 12px 0;
    font-size: 13px;
}
.inherited-block a {
    margin-right: 6px;
}
.tag {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    background: #e8eef4;
    color: #31465a;
    font-size: 12px;
    margin-right: 6px;
}
.search-item {
    padding: 9px 10px;
    border-bottom: 1px solid #eee;
    cursor: pointer;
}
.search-item:hover {
    background: #eff5fa;
}
.tree ul {
    margin: 0;
    padding-left: 18px;
}
.small {
    font-size: 12px;
}
.doc-text {
    line-height: 1.55;
}
.doc-text p {
    margin: 10px 0;
}
.doc-text p:first-child {
    margin-top: 8px;
}
.doc-text p:last-child {
    margin-bottom: 0;
}
.doc-text code {
    padding: 1px 5px;
    border-radius: 5px;
    background: #edf3f8;
    color: #23384a;
    font-size: 0.95em;
}
.doc-list {
    margin: 10px 0 0 0;
    padding-left: 22px;
}
.doc-list li {
    margin: 6px 0;
}
.group-block {
    margin: 10px 0 18px 0;
}
.group-title {
    font-weight: 600;
    color: #2d465b;
    margin-bottom: 6px;
}
.group-list {
    margin: 0;
    padding-left: 18px;
}
.index-letter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 12px 0 18px 0;
    padding: 8px 10px;
    border: 1px solid #ccd8e3;
    border-radius: 8px;
    background: #f4f8fc;
}
.index-letter-bar a {
    display: inline-block;
    min-width: 20px;
    text-align: center;
    font-weight: 600;
}

/* index.html shell */
.doc-shell {
    height: 100vh;
    overflow: hidden;
}
.shell {
    display: flex;
    height: 100%;
}
.toolbox {
    width: 48px;
    flex: 0 0 48px;
    background: linear-gradient(180deg, #2b485e 0%, #243b4b 100%);
    border-right: 1px solid #1c2f3d;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 10px 6px;
    box-sizing: border-box;
    overflow: hidden;
    transition: width 260ms cubic-bezier(0.22, 1, 0.36, 1), flex-basis 260ms cubic-bezier(0.22, 1, 0.36, 1), padding 220ms ease;
}
.toolbox.wide {
    width: 180px;
    flex-basis: 180px;
}
.tool-btn {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.20);
    background: rgba(255, 255, 255, 0.08);
    color: #ecf3f8;
    border-radius: 6px;
    height: 34px;
    font-size: 13px;
    padding: 0 10px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    width: 100%;
    transition: background 140ms ease, border-color 140ms ease, justify-content 220ms ease, gap 220ms ease, padding 220ms ease;
}
.toolbox:not(.wide) .tool-btn {
    width: 34px;
    min-width: 34px;
    padding: 0;
    justify-content: center;
    gap: 0;
}
.tool-btn:hover {
    background: rgba(255, 255, 255, 0.16);
}
.toolbox.wide .tool-btn {
    justify-content: flex-start;
}
.toolbox:not(.wide) .tool-btn.theme-toggle-btn {
    width: 34px;
    min-width: 34px;
    padding: 0;
    justify-content: center;
    gap: 0;
}
.tool-label {
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    max-width: 120px;
    opacity: 1;
    transform: translateX(0);
    transition: max-width 220ms ease, opacity 180ms ease, transform 220ms ease;
}
.toolbox:not(.wide) .tool-label {
    max-width: 0;
    opacity: 0;
    transform: translateX(-6px);
}
.toolbox .tool-btn.active {
    background: rgba(255, 255, 255, 0.25);
}
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.tool-spacer {
    flex: 1;
    min-height: 8px;
}
.tool-icon {
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 16px;
}
.tool-icon svg {
    width: 16px;
    height: 16px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.theme-glyph {
    font-size: 16px;
    line-height: 1;
}
.nav-pane {
    width: 360px;
    min-width: 220px;
    max-width: 680px;
    flex: 0 0 360px;
    display: flex;
    flex-direction: column;
    background: #ffffff;
}
.nav-pane-header {
    padding: 8px 10px;
    border-bottom: 1px solid #d5dde5;
    background: #f0f4f8;
    font-weight: 600;
    color: #334a5f;
}
.nav-mode {
    display: none;
    flex: 1;
    min-height: 0;
}
.nav-mode.active {
    display: flex;
}
.packages-mode {
    flex-direction: column;
    min-height: 0;
}
.package-split {
    flex: 0 0 33.3333%;
    min-height: 120px;
    min-width: 0;
}
.package-frame,
.package-content-frame,
.detail-frame {
    width: 100%;
    border: none;
}
.package-frame,
.package-content-frame {
    height: 100%;
}
.package-content-frame {
    flex: 1 1 0;
    min-height: 120px;
    display: block;
}
.search-pane {
    flex-direction: column;
    padding: 10px;
    gap: 8px;
    box-sizing: border-box;
}
.search-pane input {
    padding: 8px 10px;
    border: 1px solid #b8c5d2;
    border-radius: 4px;
}
.search-results-inline {
    border: 1px solid #d4dde5;
    background: #fff;
    overflow: auto;
    min-height: 0;
    flex: 1;
}
.splitter {
    background: #d8e0e7;
    position: relative;
}
.splitter:hover {
    background: #b5c8d7;
}
.splitter.v {
    width: 6px;
    cursor: col-resize;
}
.splitter.h {
    height: 6px;
    cursor: row-resize;
}
.detail-pane {
    flex: 1;
    min-width: 280px;
    background: #fff;
}
.detail-frame {
    height: 100%;
}
.code,
.search-results-inline,
.page,
.detail-frame,
.package-frame,
.package-content-frame {
    scrollbar-width: thin;
    scrollbar-color: #9eb0c0 #e8eef4;
}
*::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}
*::-webkit-scrollbar-track {
    background: #e8eef4;
}
*::-webkit-scrollbar-thumb {
    background: #9eb0c0;
    border-radius: 8px;
    border: 2px solid #e8eef4;
}
*::-webkit-scrollbar-thumb:hover {
    background: #879caf;
}
.shell.nav-hidden .nav-pane,
.shell.nav-hidden .main-splitter {
    display: none;
}
.drag-shield {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 9999;
}
.drag-shield.active {
    display: block;
}
.drag-shield.col {
    cursor: col-resize;
}
.drag-shield.row {
    cursor: row-resize;
}
body.theme-dark {
    color: #d8e0e8;
    background: #111820;
    scrollbar-color: #5c7186 #1a2430;
}
html.theme-dark {
    scrollbar-color: #5c7186 #1a2430;
}
body.theme-dark a {
    color: #8ab9e8;
}
body.theme-dark .box {
    border-color: #394754;
    background: #1b2530;
}
body.theme-dark .member-summary {
    border-color: #3d4e5d;
    background: #18222d;
}
body.theme-dark .member-detail-block {
    border-color: #3d4e5d;
    background: #1a2531;
}
body.theme-dark .doc-text code {
    background: #223241;
    color: #dce8f4;
}
body.theme-dark .type-hierarchy {
    color: #bfd0e1;
}
body.theme-dark .member-table-wrap {
    border-color: #3a4a59;
}
body.theme-dark .member-table thead th {
    background: #202d3a;
    color: #d4e0ec;
    border-bottom-color: #3b4b5a;
}
body.theme-dark .member-table td {
    border-top-color: #324250;
}
body.theme-dark .nav {
    background: #1a2430;
    border-color: #3a4654;
}
body.theme-dark .top-links {
    background: #1a2430;
    border-color: #3a4654;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.22);
}
body.theme-dark .breadcrumb {
    color: #b6c8d9;
}
body.theme-dark .doc-version {
    background: #111820;
    border-color: #4d647a;
    color: #d4e0ec;
}
body.theme-dark .muted {
    color: #9fb0c2;
}
body.theme-dark .code {
    background: #121a23;
    border-color: #344354;
}
body.theme-dark .tok-kw {
    color: #8fc1ff;
}
body.theme-dark .tok-type {
    color: #d1a7ff;
}
body.theme-dark .tok-num {
    color: #f2b176;
}
body.theme-dark .tok-str {
    color: #ff9ea8;
}
body.theme-dark .tok-cmt {
    color: #7f97ac;
}
body.theme-dark .tok-op {
    color: #b7c7d7;
}
body.theme-dark .tok-ann {
    color: #67d1ca;
}
body.theme-dark .tag {
    background: #2b3847;
    color: #cad8e6;
}
body.theme-dark .index-letter-bar {
    background: #16212c;
    border-color: #314050;
}
body.theme-dark .search-item:hover {
    background: #223040;
}
body.theme-dark .nav-pane {
    background: #121a23;
}
body.theme-dark .nav-pane-header {
    background: #1a2430;
    border-bottom-color: #3a4654;
    color: #d2deea;
}
body.theme-dark .search-results-inline {
    border-color: #3a4654;
    background: #121a23;
}
body.theme-dark .search-pane input {
    background: #0f1620;
    color: #dbe6f0;
    border-color: #3a4654;
}
body.theme-dark .splitter {
    background: #344454;
}
body.theme-dark .splitter:hover {
    background: #4a5f74;
}
body.theme-dark .detail-pane {
    background: #121a23;
}
body.theme-dark .group-title {
    color: #c7d6e5;
}
body.theme-dark .inherited-block {
    color: #aebfd0;
}
body.theme-dark .toolbox {
    background: linear-gradient(180deg, #1f3344 0%, #172734 100%);
    border-right-color: #0f1c26;
}
body.theme-dark .code,
body.theme-dark .search-results-inline,
body.theme-dark .page,
body.theme-dark .detail-frame,
body.theme-dark .package-frame,
body.theme-dark .package-content-frame {
    scrollbar-color: #5c7186 #1a2430;
}
body.theme-dark *::-webkit-scrollbar-track {
    background: #1a2430;
}
body.theme-dark::-webkit-scrollbar-track,
html.theme-dark::-webkit-scrollbar-track {
    background: #1a2430;
}
body.theme-dark *::-webkit-scrollbar-thumb {
    background: #5c7186;
    border-color: #1a2430;
}
body.theme-dark::-webkit-scrollbar-thumb,
html.theme-dark::-webkit-scrollbar-thumb {
    background: #5c7186;
    border-color: #1a2430;
}
body.theme-dark *::-webkit-scrollbar-thumb:hover {
    background: #7891a9;
}
body.theme-dark::-webkit-scrollbar-thumb:hover,
html.theme-dark::-webkit-scrollbar-thumb:hover {
    background: #7891a9;
}
pre.code {
    margin: 0;
}
pre.code.doc-code {
    margin-top: 20px;
    margin-bottom: 20px;
}