:root {
  color-scheme: light dark;
  --jd-bg: #f7f8f6;
  --jd-surface: #ffffff;
  --jd-code: #161d18;
  --jd-text: #202521;
  --jd-muted: #68716b;
  --jd-line: #dce1dd;
  --jd-green: #167a2f;
  --jd-green-soft: #e8f4ec;
  --jd-amber: #9a5a05;
  --jd-danger: #a33a2b;
  --jd-header-height: 56px;
  --jd-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --jd-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 76px; }
body { margin: 0; color: var(--jd-text); background: var(--jd-bg); font-family: var(--jd-sans); font-size: 15px; line-height: 1.55; }
a { color: inherit; }
[hidden] { display: none !important; }

.jd-header { position: sticky; z-index: 20; top: 0; display: flex; height: var(--jd-header-height); align-items: center; justify-content: space-between; padding: 0 max(20px, calc((100vw - 1440px) / 2)); border-bottom: 1px solid #30363a; color: #f2f4f3; background: #141816; }
.jd-brand { display: flex; gap: 10px; align-items: center; font-weight: 650; text-decoration: none; }
.jd-favicon { display: block; width: 30px; height: 30px; object-fit: contain; }
.jd-header nav { display: flex; height: 100%; align-items: center; gap: 24px; }
.jd-header nav a { display: flex; height: 100%; align-items: center; color: #bbc3be; font-size: 0.8rem; text-decoration: none; }
.jd-header nav a:hover, .jd-header nav a[aria-current="page"] { color: #ffffff; }

.jd-page { width: min(1120px, 100%); min-height: calc(100vh - var(--jd-header-height)); margin: 0 auto; padding: 64px 24px 24px; }
.jd-intro { max-width: 700px; margin-bottom: 48px; }
.jd-kicker, .library-heading > p:first-child { margin: 0 0 8px; color: var(--jd-green); font-family: var(--jd-mono); font-size: 0.7rem; font-weight: 700; }
.jd-intro h1, .library-heading h1, .symbol-heading h1 { margin: 0; font-size: 2.4rem; line-height: 1.15; letter-spacing: 0; }
.jd-intro > p:last-child, .library-heading > p:last-child { margin: 14px 0 0; color: var(--jd-muted); }

.library-list { border-top: 1px solid var(--jd-line); }
.library-row { display: grid; grid-template-columns: 54px minmax(0, 1fr) 150px 18px; gap: 18px; align-items: center; padding: 20px 8px; border-bottom: 1px solid var(--jd-line); text-decoration: none; }
.library-row:hover, .type-row:hover { background: var(--jd-green-soft); }
.library-java { color: var(--jd-green); font-family: var(--jd-mono); font-size: 0.78rem; font-weight: 700; }
.library-main { min-width: 0; }
.library-main strong, .library-main small { display: block; }
.library-main small { margin-top: 3px; color: var(--jd-muted); }
.latest-badge { display: inline-block; margin-left: 9px; padding: 1px 6px; border-radius: 999px; color: var(--jd-green); background: var(--jd-green-soft); font: 600 0.62rem var(--jd-mono); vertical-align: 2px; }
.library-stats { color: var(--jd-muted); font-family: var(--jd-mono); font-size: 0.68rem; text-align: right; }
.row-arrow { color: var(--jd-green); }
.source-action { margin: -26px 0 32px; }
.source-action a, .reference-meta a { color: var(--jd-green); text-decoration: none; }
.source-action a:hover, .reference-meta a:hover { text-decoration: underline; }

.jd-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); width: min(1440px, 100%); min-height: calc(100vh - var(--jd-header-height)); margin: 0 auto; }
.jd-sidebar { position: sticky; top: var(--jd-header-height); align-self: start; height: calc(100vh - var(--jd-header-height)); padding: 28px 20px; border-right: 1px solid var(--jd-line); overflow-y: auto; }
.type-filter > span, .jd-sidebar nav > strong { display: block; margin-bottom: 9px; color: var(--jd-muted); font-family: var(--jd-mono); font-size: 0.68rem; text-transform: uppercase; }
.type-filter input { width: 100%; height: 38px; padding: 0 10px; border: 1px solid var(--jd-line); border-radius: 4px; outline: 0; color: var(--jd-text); background: var(--jd-surface); font: 0.8rem var(--jd-sans); }
.type-filter input:focus { border-color: var(--jd-green); box-shadow: 0 0 0 2px color-mix(in srgb, var(--jd-green) 18%, transparent); }
.jd-sidebar nav { margin-top: 28px; }
.jd-sidebar nav a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 7px 8px; color: var(--jd-muted); font-family: var(--jd-mono); font-size: 0.7rem; text-decoration: none; overflow-wrap: anywhere; }
.jd-sidebar nav a:hover, .jd-sidebar nav a[aria-current="page"] { color: var(--jd-text); background: var(--jd-green-soft); }
.jd-sidebar nav a span { color: var(--jd-muted); font-size: 0.62rem; }

.jd-content { min-width: 0; max-width: 1060px; padding: 28px clamp(24px, 5vw, 72px) 30px; }
.jd-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 34px; color: var(--jd-muted); font-family: var(--jd-mono); font-size: 0.7rem; }
.jd-breadcrumb a { color: var(--jd-green); text-decoration: none; }
.library-heading { max-width: 760px; }
.heading-version { color: var(--jd-muted); font-family: var(--jd-mono); font-size: 0.55em; font-weight: 500; }
.reference-meta { display: flex; flex-wrap: wrap; margin: 26px 0 38px; border-block: 1px solid var(--jd-line); }
.reference-meta div { min-width: 150px; padding: 10px 28px 10px 0; }
.reference-meta dt { color: var(--jd-muted); font-size: 0.64rem; text-transform: uppercase; }
.reference-meta dd { max-width: 620px; margin: 2px 0 0; font-family: var(--jd-mono); font-size: 0.72rem; overflow-wrap: anywhere; }

.package-section, .member-section { margin-top: 42px; scroll-margin-top: 76px; }
.package-section h2, .member-section h2 { display: flex; justify-content: space-between; gap: 16px; margin: 0 0 8px; font: 500 0.78rem var(--jd-mono); overflow-wrap: anywhere; }
.package-section h2 span, .member-section h2 span { color: var(--jd-muted); font-weight: 400; }
.type-list, .member-list { border-top: 1px solid var(--jd-line); }
.type-row { display: grid; grid-template-columns: 86px minmax(0, 1fr) 18px; gap: 14px; align-items: center; padding: 13px 8px; border-bottom: 1px solid var(--jd-line); text-decoration: none; }
.type-row strong, .type-row small { display: block; }
.type-row strong { font-size: 0.88rem; }
.type-row small { overflow: hidden; margin-top: 2px; color: var(--jd-muted); font: 0.68rem var(--jd-mono); text-overflow: ellipsis; white-space: nowrap; }
.type-kind { display: inline-flex; width: fit-content; padding: 2px 5px; border: 1px solid var(--jd-line); border-radius: 3px; color: var(--jd-green); font: 0.63rem var(--jd-mono); }

.symbol-heading { padding-bottom: 24px; border-bottom: 1px solid var(--jd-line); }
.symbol-heading .type-kind { margin-bottom: 12px; }
.symbol-heading p { margin: 10px 0 0; color: var(--jd-muted); font: 0.7rem var(--jd-mono); overflow-wrap: anywhere; }
.java-doc { max-width: 780px; margin: 24px 0; color: var(--jd-muted); }
.java-doc p { margin: 5px 0; }
.deprecated { max-width: 780px; padding: 11px 13px; border-left: 3px solid var(--jd-danger); color: var(--jd-danger); background: color-mix(in srgb, var(--jd-danger) 8%, var(--jd-surface)); }
pre { overflow-x: auto; margin: 0; font-family: var(--jd-mono); white-space: pre-wrap; overflow-wrap: anywhere; }
.declaration { margin: 24px 0 42px; padding: 17px 18px; border-left: 3px solid #65d491; color: #e8eeea; background: var(--jd-code); font-size: 0.78rem; }
.hljs-keyword, .hljs-selector-tag, .hljs-type { color: #ff8f70; }
.hljs-title, .hljs-title.class_, .hljs-title.function_ { color: #72d5ff; }
.hljs-string, .hljs-char, .hljs-meta .hljs-string { color: #b9df84; }
.hljs-number, .hljs-literal { color: #d7a8ff; }
.hljs-meta, .hljs-annotation { color: #f2c66d; }
.hljs-params, .hljs-variable, .hljs-property { color: #e8eeea; }
.hljs-comment, .hljs-doctag { color: #84928a; font-style: italic; }
.member .hljs-keyword, .member .hljs-selector-tag, .member .hljs-type { color: #a43c2b; }
.member .hljs-title, .member .hljs-title.class_, .member .hljs-title.function_ { color: #076c8f; }
.member .hljs-string, .member .hljs-char { color: #397326; }
.member .hljs-number, .member .hljs-literal { color: #70499a; }
.member .hljs-meta, .member .hljs-annotation { color: var(--jd-amber); }
.member-nav { display: flex; flex-wrap: wrap; gap: 8px 20px; padding-bottom: 14px; border-bottom: 1px solid var(--jd-line); }
.member-nav a { color: var(--jd-green); font: 0.72rem var(--jd-mono); text-decoration: none; }
.member-nav span { color: var(--jd-muted); }
.member { padding: 18px 8px; border-bottom: 1px solid var(--jd-line); scroll-margin-top: 76px; }
.member h3 { margin: 0 0 8px; font: 600 0.82rem var(--jd-mono); }
.member pre { color: var(--jd-text); font-size: 0.7rem; }
.member .hljs-params, .member .hljs-variable, .member .hljs-property { color: var(--jd-text); }
.member > p { margin: 12px 0 0; color: var(--jd-muted); }
.doc-tags { margin: 13px 0 0; font-size: 0.72rem; }
.doc-tags div { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 10px; padding: 3px 0; }
.doc-tags dt { color: var(--jd-amber); font-family: var(--jd-mono); }
.doc-tags dd { margin: 0; color: var(--jd-muted); }
.empty { padding: 48px 0; color: var(--jd-muted); text-align: center; }
footer { margin-top: 64px; padding: 20px 0; border-top: 1px solid var(--jd-line); color: var(--jd-muted); font-size: 0.7rem; }

@media (prefers-color-scheme: dark) {
  :root { --jd-bg: #111513; --jd-surface: #181d1a; --jd-text: #e5ebe7; --jd-muted: #9aa69f; --jd-line: #303832; --jd-green: #65d491; --jd-green-soft: #1b2b21; --jd-amber: #e4ad57; --jd-danger: #ef8d7d; }
  .member .hljs-keyword, .member .hljs-selector-tag, .member .hljs-type { color: #ff8f70; }
  .member .hljs-title, .member .hljs-title.class_, .member .hljs-title.function_ { color: #72d5ff; }
  .member .hljs-string, .member .hljs-char { color: #b9df84; }
  .member .hljs-number, .member .hljs-literal { color: #d7a8ff; }
}

@media (max-width: 760px) {
  .jd-header { padding: 0 14px; }
  .jd-header nav { gap: 14px; }
  .jd-header nav a:nth-child(2) { display: none; }
  .jd-page { padding: 42px 16px 20px; }
  .library-row { grid-template-columns: 42px minmax(0, 1fr) 16px; gap: 10px; }
  .library-stats { grid-column: 2; text-align: left; }
  .jd-layout { display: block; }
  .jd-sidebar { position: static; width: 100%; height: auto; max-height: 240px; padding: 16px; border-right: 0; border-bottom: 1px solid var(--jd-line); }
  .jd-sidebar nav { margin-top: 14px; }
  .symbol-sidebar { display: none; }
  .jd-content { padding: 22px 16px; }
  .type-row { grid-template-columns: 72px minmax(0, 1fr) 14px; gap: 9px; }
  .jd-intro h1, .library-heading h1, .symbol-heading h1 { font-size: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
