/* /api-docs 規格說明頁（apiDoc 風格） */
:root {
    --ad-sidebar-width: 280px;
    --ad-topbar-height: 52px;
    --ad-text: #1f2328;
    --ad-muted: #656d76;
    --ad-faint: #8c959f;
    --ad-border: #d0d7de;
    --ad-border-soft: #e6e9ed;
    --ad-bg: #ffffff;
    --ad-bg-soft: #f6f8fa;
    --ad-bg-row: #fafbfc;
    --ad-accent: #0969da;
    --ad-accent-soft: #ddf4ff;
    --ad-warning: #9a6700;
    --ad-warning-bg: #fff8c5;
    --ad-get: #1a7f37;
    --ad-post: #0969da;
    --ad-put: #bc4c00;
    --ad-delete: #cf222e;
    --ad-patch: #8250df;
    --ad-hover: #eaeef2;
    --ad-row-group: #f0f6ff;
    --ad-code-inline: rgba(175, 184, 193, 0.2);
    --ad-shadow: rgba(31, 35, 40, 0.15);
    --ad-on-method: #ffffff;
    --ad-error-border: #ffcecb;
    --ad-error-bg: #ffebe9;
    --ad-error-text: #82071e;
    --ad-ok-border: #4ac26b;
    --ad-ok-bg: #dafbe1;
    --ad-ok-text: #116329;
    --ad-warn-border: #d4a72c;
    --ad-warn-bg: #fff8c5;
    --ad-warn-text: #7d4e00;
    --ad-danger-border: #ff8182;
    --ad-danger-bg: #ffebe9;
    --ad-danger-text: #a40e26;
    --ad-callback-bg: #fbefff;
    color-scheme: light;
    --ad-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}

/* ---------- 深色模式：跟隨系統，或以 data-theme 指定（僅限螢幕） ---------- */

@media screen and (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --ad-text: #e6edf3;
        --ad-muted: #9198a1;
        --ad-faint: #7d8590;
        --ad-border: #3d444d;
        --ad-border-soft: #2f353d;
        --ad-bg: #0d1117;
        --ad-bg-soft: #151b23;
        --ad-bg-row: #11161d;
        --ad-accent: #4493f8;
        --ad-accent-soft: rgba(56, 139, 253, 0.18);
        --ad-warning: #d29922;
        --ad-get: #2ea043;
        --ad-post: #1f6feb;
        --ad-put: #db6d28;
        --ad-delete: #da3633;
        --ad-patch: #a371f7;
        --ad-hover: #212830;
        --ad-row-group: #132036;
        --ad-code-inline: rgba(101, 108, 118, 0.3);
        --ad-shadow: rgba(1, 4, 9, 0.6);
        --ad-error-border: #8e1519;
        --ad-error-bg: #25171c;
        --ad-error-text: #ffa198;
        --ad-ok-border: #2ea043;
        --ad-ok-bg: rgba(46, 160, 67, 0.15);
        --ad-ok-text: #7ee787;
        --ad-warn-border: #9e6a03;
        --ad-warn-bg: rgba(187, 128, 9, 0.15);
        --ad-warn-text: #e3b341;
        --ad-danger-border: #da3633;
        --ad-danger-bg: rgba(248, 81, 73, 0.15);
        --ad-danger-text: #ffa198;
        --ad-callback-bg: rgba(163, 113, 247, 0.15);
        color-scheme: dark;
    }

    :root:not([data-theme="light"]) .hljs { color: #e6edf3; }
    :root:not([data-theme="light"]) .hljs-doctag, :root:not([data-theme="light"]) .hljs-keyword, :root:not([data-theme="light"]) .hljs-meta .hljs-keyword, :root:not([data-theme="light"]) .hljs-template-tag,
    :root:not([data-theme="light"]) .hljs-template-variable, :root:not([data-theme="light"]) .hljs-type, :root:not([data-theme="light"]) .hljs-variable.language_ { color: #ff7b72; }
    :root:not([data-theme="light"]) .hljs-title, :root:not([data-theme="light"]) .hljs-title.class_, :root:not([data-theme="light"]) .hljs-title.function_ { color: #d2a8ff; }
    :root:not([data-theme="light"]) .hljs-attr, :root:not([data-theme="light"]) .hljs-attribute, :root:not([data-theme="light"]) .hljs-literal, :root:not([data-theme="light"]) .hljs-meta, :root:not([data-theme="light"]) .hljs-number,
    :root:not([data-theme="light"]) .hljs-operator, :root:not([data-theme="light"]) .hljs-variable, :root:not([data-theme="light"]) .hljs-selector-attr, :root:not([data-theme="light"]) .hljs-selector-class,
    :root:not([data-theme="light"]) .hljs-selector-id { color: #79c0ff; }
    :root:not([data-theme="light"]) .hljs-string, :root:not([data-theme="light"]) .hljs-regexp, :root:not([data-theme="light"]) .hljs-meta .hljs-string { color: #a5d6ff; }
    :root:not([data-theme="light"]) .hljs-built_in, :root:not([data-theme="light"]) .hljs-symbol { color: #ffa657; }
    :root:not([data-theme="light"]) .hljs-comment, :root:not([data-theme="light"]) .hljs-code, :root:not([data-theme="light"]) .hljs-formula { color: #8b949e; }
    :root:not([data-theme="light"]) .hljs-name, :root:not([data-theme="light"]) .hljs-quote, :root:not([data-theme="light"]) .hljs-selector-tag, :root:not([data-theme="light"]) .hljs-selector-pseudo { color: #7ee787; }
    :root:not([data-theme="light"]) .hljs-subst, :root:not([data-theme="light"]) .hljs-emphasis, :root:not([data-theme="light"]) .hljs-strong { color: #e6edf3; }
    :root:not([data-theme="light"]) .hljs-section { color: #1f6feb; }
    :root:not([data-theme="light"]) .hljs-bullet { color: #f2cc60; }
    :root:not([data-theme="light"]) .hljs-addition { color: #aff5b4; background-color: #033a16; }
    :root:not([data-theme="light"]) .hljs-deletion { color: #ffdcd7; background-color: #67060c; }
}

/* 列印一律使用淺色 */
@media screen {
    :root[data-theme="dark"] {
        --ad-text: #e6edf3;
        --ad-muted: #9198a1;
        --ad-faint: #7d8590;
        --ad-border: #3d444d;
        --ad-border-soft: #2f353d;
        --ad-bg: #0d1117;
        --ad-bg-soft: #151b23;
        --ad-bg-row: #11161d;
        --ad-accent: #4493f8;
        --ad-accent-soft: rgba(56, 139, 253, 0.18);
        --ad-warning: #d29922;
        --ad-get: #2ea043;
        --ad-post: #1f6feb;
        --ad-put: #db6d28;
        --ad-delete: #da3633;
        --ad-patch: #a371f7;
        --ad-hover: #212830;
        --ad-row-group: #132036;
        --ad-code-inline: rgba(101, 108, 118, 0.3);
        --ad-shadow: rgba(1, 4, 9, 0.6);
        --ad-error-border: #8e1519;
        --ad-error-bg: #25171c;
        --ad-error-text: #ffa198;
        --ad-ok-border: #2ea043;
        --ad-ok-bg: rgba(46, 160, 67, 0.15);
        --ad-ok-text: #7ee787;
        --ad-warn-border: #9e6a03;
        --ad-warn-bg: rgba(187, 128, 9, 0.15);
        --ad-warn-text: #e3b341;
        --ad-danger-border: #da3633;
        --ad-danger-bg: rgba(248, 81, 73, 0.15);
        --ad-danger-text: #ffa198;
        --ad-callback-bg: rgba(163, 113, 247, 0.15);
        color-scheme: dark;
    }

    :root[data-theme="dark"] .hljs { color: #e6edf3; }
    :root[data-theme="dark"] .hljs-doctag, :root[data-theme="dark"] .hljs-keyword, :root[data-theme="dark"] .hljs-meta .hljs-keyword, :root[data-theme="dark"] .hljs-template-tag,
    :root[data-theme="dark"] .hljs-template-variable, :root[data-theme="dark"] .hljs-type, :root[data-theme="dark"] .hljs-variable.language_ { color: #ff7b72; }
    :root[data-theme="dark"] .hljs-title, :root[data-theme="dark"] .hljs-title.class_, :root[data-theme="dark"] .hljs-title.function_ { color: #d2a8ff; }
    :root[data-theme="dark"] .hljs-attr, :root[data-theme="dark"] .hljs-attribute, :root[data-theme="dark"] .hljs-literal, :root[data-theme="dark"] .hljs-meta, :root[data-theme="dark"] .hljs-number,
    :root[data-theme="dark"] .hljs-operator, :root[data-theme="dark"] .hljs-variable, :root[data-theme="dark"] .hljs-selector-attr, :root[data-theme="dark"] .hljs-selector-class,
    :root[data-theme="dark"] .hljs-selector-id { color: #79c0ff; }
    :root[data-theme="dark"] .hljs-string, :root[data-theme="dark"] .hljs-regexp, :root[data-theme="dark"] .hljs-meta .hljs-string { color: #a5d6ff; }
    :root[data-theme="dark"] .hljs-built_in, :root[data-theme="dark"] .hljs-symbol { color: #ffa657; }
    :root[data-theme="dark"] .hljs-comment, :root[data-theme="dark"] .hljs-code, :root[data-theme="dark"] .hljs-formula { color: #8b949e; }
    :root[data-theme="dark"] .hljs-name, :root[data-theme="dark"] .hljs-quote, :root[data-theme="dark"] .hljs-selector-tag, :root[data-theme="dark"] .hljs-selector-pseudo { color: #7ee787; }
    :root[data-theme="dark"] .hljs-subst, :root[data-theme="dark"] .hljs-emphasis, :root[data-theme="dark"] .hljs-strong { color: #e6edf3; }
    :root[data-theme="dark"] .hljs-section { color: #1f6feb; }
    :root[data-theme="dark"] .hljs-bullet { color: #f2cc60; }
    :root[data-theme="dark"] .hljs-addition { color: #aff5b4; background-color: #033a16; }
    :root[data-theme="dark"] .hljs-deletion { color: #ffdcd7; background-color: #67060c; }
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-padding-top: calc(var(--ad-site-top, 0px) + 16px);
}

body {
    margin: 0;
    background: var(--ad-bg);
    color: var(--ad-text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;
    font-size: 15px;
    line-height: 1.65;
    -webkit-text-size-adjust: 100%;
}

code,
pre {
    font-family: var(--ad-mono);
    font-size: 0.875em;
}

a {
    color: var(--ad-accent);
}

/* ---------- 狀態訊息 ---------- */

.ad-status {
    max-width: 640px;
    margin: 80px auto;
    padding: 20px 24px;
    border: 1px solid var(--ad-border);
    border-radius: 8px;
    background: var(--ad-bg-soft);
    color: var(--ad-muted);
    text-align: center;
}

.ad-status-error {
    border-color: var(--ad-error-border);
    background: var(--ad-error-bg);
    color: var(--ad-error-text);
    text-align: left;
}

.ad-status-detail {
    margin-top: 6px;
    font-family: var(--ad-mono);
    font-size: 13px;
    overflow-wrap: anywhere;
}

/* ---------- 版面 ---------- */

.ad-topbar {
    display: none;
}

.ad-sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 20;
    display: flex;
    flex-direction: column;
    width: var(--ad-sidebar-width);
    border-right: 1px solid var(--ad-border);
    background: var(--ad-bg-soft);
}

.ad-main {
    min-width: 0;
    max-width: calc(1100px + var(--ad-sidebar-width));
    margin-left: var(--ad-sidebar-width);
    padding: 32px 48px 120px;
}

.ad-sidebar-head {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 18px 16px 10px;
}

.ad-sidebar-title {
    color: var(--ad-text);
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
}

.ad-version {
    flex-shrink: 0;
    margin-left: 8px;
    padding: 1px 8px;
    border-radius: 10px;
    background: var(--ad-accent-soft);
    color: var(--ad-accent);
    font-size: 12px;
    font-weight: 500;
    vertical-align: middle;
}

.ad-sidebar-head .ad-version {
    margin-left: 0;
}

.ad-search {
    margin: 0 16px 10px;
    padding: 7px 10px;
    border: 1px solid var(--ad-border);
    border-radius: 6px;
    background: var(--ad-bg);
    color: var(--ad-text);
    font: inherit;
    font-size: 14px;
}

.ad-search:focus {
    border-color: var(--ad-accent);
    outline: 2px solid var(--ad-accent-soft);
}

.ad-nav {
    position: relative;
    flex: 1;
    overflow-y: auto;
    padding: 0 8px 24px;
}

.ad-nav-section {
    margin-top: 14px;
}

.ad-nav-title {
    padding: 0 8px 4px;
    color: var(--ad-muted);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.ad-nav-list,
.ad-nav-sublist {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ad-nav-sublist .ad-nav-link {
    padding-left: 22px;
    font-size: 13px;
}

.ad-nav-link {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    padding: 4px 8px;
    border-radius: 6px;
    color: var(--ad-text);
    font-size: 14px;
    line-height: 1.45;
    text-decoration: none;
}

.ad-nav-link:hover {
    background: var(--ad-hover);
}

.ad-nav-link[aria-current] {
    background: var(--ad-accent-soft);
    color: var(--ad-accent);
    font-weight: 600;
}

.ad-nav-link .ad-method {
    flex-shrink: 0;
    min-width: 42px;
    margin-top: 1px;
    font-size: 10px;
}

.ad-nav-empty {
    padding: 12px 8px;
    color: var(--ad-muted);
    font-size: 14px;
}

[hidden] {
    display: none !important;
}

/* ---------- 主題切換 ---------- */

.ad-theme-toggle {
    flex-shrink: 0;
    margin-left: auto;
    padding: 2px 10px;
    border: 1px solid var(--ad-border);
    border-radius: 6px;
    background: var(--ad-bg);
    color: var(--ad-muted);
    font: inherit;
    font-size: 12px;
    line-height: 1.6;
    cursor: pointer;
}

.ad-theme-toggle:hover,
.ad-theme-toggle:focus-visible {
    color: var(--ad-text);
}

.ad-topbar .ad-theme-toggle {
    padding: 5px 10px;
    font-size: 13px;
}

/* ---------- 文件內容 ---------- */

.ad-doc-header h1 {
    margin: 0 0 16px;
    font-size: 28px;
    line-height: 1.3;
}

.ad-servers {
    max-width: 560px;
}

.ad-servers-title {
    margin-bottom: 6px;
    color: var(--ad-muted);
    font-size: 13px;
    font-weight: 600;
}

.ad-intro {
    padding-bottom: 16px;
    border-bottom: 1px solid var(--ad-border);
}

.ad-intro h2 {
    margin: 40px 0 12px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--ad-border-soft);
    font-size: 22px;
}

.ad-intro h3 {
    margin: 28px 0 10px;
    font-size: 18px;
}

.ad-intro h4 {
    margin: 22px 0 8px;
    font-size: 16px;
}

.ad-group-title {
    margin: 56px 0 8px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--ad-text);
    font-size: 24px;
}

.ad-op {
    padding: 32px 0 40px;
    border-bottom: 1px solid var(--ad-border);
}

.ad-op-title {
    position: relative;
    margin: 0 0 12px;
    font-size: 22px;
    line-height: 1.35;
}

.ad-anchor {
    position: absolute;
    left: -22px;
    color: var(--ad-faint);
    font-weight: 400;
    text-decoration: none;
    opacity: 0;
}

.ad-op-title:hover .ad-anchor,
.ad-anchor:focus {
    opacity: 1;
}

.ad-endpoint {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
    padding: 10px 12px;
    border: 1px solid var(--ad-border);
    border-radius: 6px;
    background: var(--ad-bg-soft);
}

.ad-path {
    font-size: 15px;
    overflow-wrap: anywhere;
}

.ad-method {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--ad-faint);
    color: var(--ad-on-method);
    font-family: var(--ad-mono);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
}

.ad-method-get { background: var(--ad-get); }
.ad-method-post { background: var(--ad-post); }
.ad-method-put { background: var(--ad-put); }
.ad-method-delete { background: var(--ad-delete); }
.ad-method-patch { background: var(--ad-patch); }

.ad-section {
    margin-top: 28px;
}

.ad-section > h3 {
    margin: 0 0 10px;
    padding-left: 10px;
    border-left: 4px solid var(--ad-accent);
    font-size: 17px;
    line-height: 1.4;
}

.ad-response {
    margin: 18px 0 24px;
}

.ad-response-title {
    margin: 0 0 6px;
    font-size: 15px;
}

.ad-http {
    display: inline-block;
    padding: 1px 10px;
    border-radius: 4px;
    background: var(--ad-bg-soft);
    border: 1px solid var(--ad-border);
    font-family: var(--ad-mono);
    font-size: 13px;
}

.ad-http-2xx { border-color: var(--ad-ok-border); background: var(--ad-ok-bg); color: var(--ad-ok-text); }
.ad-http-4xx { border-color: var(--ad-warn-border); background: var(--ad-warn-bg); color: var(--ad-warn-text); }
.ad-http-5xx { border-color: var(--ad-danger-border); background: var(--ad-danger-bg); color: var(--ad-danger-text); }

.ad-media {
    margin: 8px 0;
    color: var(--ad-muted);
    font-size: 13px;
}

.ad-media-label {
    margin-right: 6px;
}

.ad-media-extra {
    margin-left: 8px;
}

.ad-variants-label {
    margin: 10px 0 4px;
}

.ad-variant {
    margin: 12px 0 18px;
    padding-left: 12px;
    border-left: 2px solid var(--ad-border);
}

.ad-variant-title {
    margin: 0 0 4px;
    font-family: var(--ad-mono);
    font-size: 14px;
}

.ad-examples-title {
    margin: 18px 0 6px;
    font-size: 14px;
    color: var(--ad-muted);
}

.ad-callback {
    margin: 12px 0;
    padding: 16px 18px 4px;
    border: 1px dashed var(--ad-border);
    border-radius: 8px;
    background: var(--ad-bg-row);
}

.ad-callback-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    font-size: 16px;
}

/* ---------- Markdown ---------- */

.ad-md > :first-child {
    margin-top: 0;
}

.ad-md > :last-child {
    margin-bottom: 0;
}

.ad-md p,
.ad-md ul,
.ad-md ol {
    margin: 8px 0;
}

.ad-md ul,
.ad-md ol {
    padding-left: 22px;
}

.ad-md h5,
.ad-md h6 {
    margin: 16px 0 6px;
    font-size: 15px;
}

.ad-md :not(pre) > code,
.ad-constraint code,
.ad-urls code {
    padding: 1px 5px;
    border-radius: 4px;
    background: var(--ad-code-inline);
    overflow-wrap: anywhere;
}

.ad-md table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.ad-md th,
.ad-md td {
    padding: 6px 12px;
    border: 1px solid var(--ad-border);
    text-align: left;
    vertical-align: top;
    overflow-wrap: anywhere;
}

.ad-md th {
    background: var(--ad-bg-soft);
    font-weight: 600;
}

.ad-md tbody tr:nth-child(even) {
    background: var(--ad-bg-row);
}

.ad-md-inline p,
.ad-md-inline ul,
.ad-md-inline ol {
    margin: 2px 0;
}

/* ---------- 欄位表 ---------- */

.ad-table-wrap {
    max-width: 100%;
    margin: 8px 0;
    overflow-x: auto;
}

.ad-fields {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 14px;
}

.ad-fields caption {
    padding: 4px 0;
    text-align: left;
    font-weight: 600;
}

.ad-fields th,
.ad-fields td {
    padding: 7px 12px;
    border: 1px solid var(--ad-border);
    text-align: left;
    vertical-align: top;
}

.ad-fields thead th {
    background: var(--ad-bg-soft);
    font-weight: 600;
    white-space: nowrap;
}

.ad-fields tbody tr:nth-child(even) {
    background: var(--ad-bg-row);
}

.ad-fields .ad-col-field { width: 30%; }
.ad-fields .ad-col-type { width: 13%; }
.ad-fields .ad-col-required { width: 8%; }

.ad-fields td.ad-col-field,
.ad-row-group td,
.ad-row-note td {
    padding-left: calc(12px + var(--ad-depth, 0) * 16px);
}

td.ad-col-field {
    font-family: var(--ad-mono);
    font-size: 13px;
    overflow-wrap: break-word;
}

.ad-field-parent {
    display: block;
    color: var(--ad-faint);
    font-size: 12px;
    line-height: 1.4;
}

.ad-field-name {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.ad-row-nested td.ad-col-field {
    background-image: linear-gradient(var(--ad-border-soft), var(--ad-border-soft));
    background-repeat: no-repeat;
    background-size: 2px 100%;
    background-position: calc(4px + var(--ad-depth, 0) * 16px) 0;
}

.ad-col-type .ad-type,
.ad-row-group .ad-type {
    color: var(--ad-patch);
    font-size: 13px;
    overflow-wrap: anywhere;
}

.ad-col-desc {
    overflow-wrap: anywhere;
}

.ad-row-group td {
    background: var(--ad-row-group);
    font-size: 13px;
}

.ad-row-group .ad-type {
    margin-left: 8px;
}

.ad-group-label {
    font-weight: 600;
}

.ad-empty {
    color: var(--ad-muted);
    text-align: center !important;
}

.ad-constraints {
    margin-top: 4px;
    font-size: 13px;
}

.ad-constraint {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px;
    margin-top: 2px;
}

.ad-constraint-label {
    flex-shrink: 0;
    margin-right: 2px;
    color: var(--ad-muted);
}

.ad-constraint-label::after {
    content: "：";
}

.ad-badge {
    display: inline-block;
    padding: 0 7px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.7;
    white-space: nowrap;
    vertical-align: middle;
}

.ad-op-title .ad-badge,
.ad-col-field .ad-badge {
    margin-left: 8px;
    font-family: inherit;
}

.ad-badge-required { background: var(--ad-danger-bg); color: var(--ad-danger-text); }
.ad-badge-deprecated { background: var(--ad-hover); color: var(--ad-muted); }
.ad-badge-variants { background: var(--ad-accent-soft); color: var(--ad-accent); }
.ad-badge-callback { background: var(--ad-callback-bg); color: var(--ad-patch); }

.ad-optional {
    color: var(--ad-faint);
    font-size: 13px;
}

.ad-warning {
    color: var(--ad-warning);
    font-size: 13px;
}

.ad-warning::before {
    content: "⚠ ";
}

/* ---------- 環境網址表 ---------- */

.ad-urls {
    border-collapse: collapse;
    font-size: 14px;
}

.ad-urls th,
.ad-urls td {
    padding: 4px 12px 4px 0;
    text-align: left;
    vertical-align: top;
}

.ad-urls th {
    color: var(--ad-muted);
    font-weight: 500;
    white-space: nowrap;
}

/* ---------- 頁籤與程式碼 ---------- */

.ad-tabs {
    margin: 8px 0 12px;
}

.ad-tablist {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    border-bottom: 1px solid var(--ad-border);
}

.ad-tab {
    margin-bottom: -1px;
    padding: 6px 12px;
    border: 1px solid transparent;
    border-radius: 6px 6px 0 0;
    background: none;
    color: var(--ad-muted);
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}

.ad-tab:hover {
    color: var(--ad-text);
}

.ad-tab[aria-selected="true"] {
    border-color: var(--ad-border);
    border-bottom-color: var(--ad-bg);
    background: var(--ad-bg);
    color: var(--ad-text);
    font-weight: 600;
}

.ad-tab:focus-visible {
    outline: 2px solid var(--ad-accent);
    outline-offset: -2px;
}

.ad-tabpanel {
    padding-top: 8px;
}

.ad-code {
    position: relative;
    margin: 8px 0;
}

.ad-code pre {
    margin: 0;
    max-height: 560px;
    overflow: auto;
    border: 1px solid var(--ad-border);
    border-radius: 6px;
    background: var(--ad-bg-soft);
}

.ad-code pre code.hljs {
    display: block;
    padding: 12px 14px;
    background: transparent;
    font-size: 13px;
    line-height: 1.55;
    white-space: pre;
}

.ad-copy {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 1;
    padding: 2px 10px;
    border: 1px solid var(--ad-border);
    border-radius: 6px;
    background: var(--ad-bg);
    color: var(--ad-muted);
    font: inherit;
    font-size: 12px;
    cursor: pointer;
    opacity: 0.85;
}

.ad-copy:hover,
.ad-copy:focus-visible {
    color: var(--ad-text);
    opacity: 1;
}

.ad-copy.ad-copied {
    border-color: var(--ad-ok-border);
    color: var(--ad-get);
}

.ad-copy-buffer {
    position: fixed;
    top: -1000px;
    opacity: 0;
}

/* ---------- 嵌入網站 navbar／footer（.ad-in-site） ---------- */

.ad-in-site {
    display: flex;
    align-items: flex-start;
    padding-top: var(--ad-site-top, 0px);
}

.ad-in-site.ad-ready > .ad-status {
    display: none;
}

.ad-in-site .ad-sidebar {
    position: sticky;
    top: var(--ad-site-top, 0px);
    flex: 0 0 var(--ad-sidebar-width);
    height: calc(100vh - var(--ad-site-top, 0px));
}

.ad-in-site .ad-main {
    flex: 1;
    margin-left: 0;
}

.ad-in-site > .ad-status {
    flex: 1;
}

/* 抵銷 bootstrap 對 code、pre 的預設樣式（:where 不增加權重，文件自己的 code 樣式仍優先） */
:where(.ad-in-site) code {
    padding: 0;
    border-radius: 0;
    background: none;
    color: inherit;
    font-size: inherit;
    white-space: normal;
}

.ad-in-site .ad-type {
    color: var(--ad-patch);
}

.ad-in-site .ad-code pre {
    padding: 0;
    word-break: normal;
    word-wrap: normal;
    line-height: inherit;
}

.ad-in-site h1,
.ad-in-site h2,
.ad-in-site h3,
.ad-in-site h4,
.ad-in-site h5,
.ad-in-site h6 {
    color: inherit;
    font-family: inherit;
}

/* ---------- 窄螢幕 ---------- */

@media (max-width: 767px) {
    html {
        scroll-padding-top: calc(var(--ad-topbar-height) + 8px);
    }

    .ad-topbar {
        position: sticky;
        top: 0;
        z-index: 30;
        display: flex;
        align-items: center;
        gap: 12px;
        height: var(--ad-topbar-height);
        padding: 0 16px;
        border-bottom: 1px solid var(--ad-border);
        background: var(--ad-bg);
    }

    .ad-topbar-title {
        overflow: hidden;
        font-weight: 600;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

    .ad-menu-toggle {
        flex-shrink: 0;
        padding: 5px 12px;
        border: 1px solid var(--ad-border);
        border-radius: 6px;
        background: var(--ad-bg-soft);
        color: var(--ad-text);
        font: inherit;
        font-size: 14px;
    }

    .ad-in-site {
        display: block;
    }

    .ad-in-site .ad-topbar {
        top: var(--ad-site-top, 0px);
    }

    .ad-in-site .ad-sidebar {
        position: fixed;
        top: calc(var(--ad-site-top, 0px) + var(--ad-topbar-height));
        height: auto;
    }

    html:has(.ad-in-site) {
        scroll-padding-top: calc(var(--ad-site-top, 0px) + var(--ad-topbar-height) + 8px);
    }

    .ad-sidebar {
        top: var(--ad-topbar-height);
        width: min(86vw, 320px);
        box-shadow: 4px 0 16px var(--ad-shadow);
        transform: translateX(-105%);
        transition: transform 0.2s ease;
    }

    .ad-nav-open .ad-sidebar {
        transform: none;
    }

    .ad-sidebar-head {
        display: none;
    }

    .ad-search {
        margin-top: 12px;
    }

    .ad-main {
        margin-left: 0;
        padding: 20px 16px 80px;
    }

    .ad-doc-header h1 {
        font-size: 22px;
    }

    /* 欄位表改為逐列卡片：欄位、型別、必填一行，說明在下方 */
    .ad-fields,
    .ad-fields tbody {
        display: block;
        min-width: 0;
    }

    .ad-fields thead {
        display: none;
    }

    .ad-fields tbody {
        border-top: 1px solid var(--ad-border);
    }

    .ad-fields tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto auto;
        align-items: start;
        border: 1px solid var(--ad-border);
        border-top: none;
    }

    .ad-fields td {
        width: auto !important;
        border: none;
        padding: 8px 10px 4px;
    }

    .ad-fields td.ad-col-field {
        padding-left: calc(10px + var(--ad-depth, 0) * 12px);
    }

    .ad-fields td.ad-col-desc,
    .ad-fields td[colspan] {
        grid-column: 1 / -1;
    }

    .ad-fields td.ad-col-desc {
        padding: 0 10px 10px calc(10px + var(--ad-depth, 0) * 12px);
    }

    .ad-row-group td,
    .ad-row-note td {
        padding-left: calc(10px + var(--ad-depth, 0) * 12px) !important;
    }

    .ad-row-nested td.ad-col-field {
        background-position: calc(3px + var(--ad-depth, 0) * 12px) 0;
    }

    .ad-op-title {
        font-size: 19px;
    }

    .ad-anchor {
        display: none;
    }
}

/* ---------- 列印 ---------- */

@media print {
    .ad-theme-toggle {
        display: none !important;
    }

    body {
        font-size: 11pt;
    }

    .ad-topbar,
    .ad-sidebar,
    .ad-copy,
    .ad-tablist,
    .ad-anchor {
        display: none !important;
    }

    .ad-main {
        max-width: none;
        margin: 0;
        padding: 0;
    }

    .ad-tabpanel[hidden] {
        display: block !important;
    }

    .ad-tabpanel::before {
        content: attr(data-label);
        display: block;
        margin: 6px 0 2px;
        color: var(--ad-muted);
        font-size: 10pt;
        font-weight: 600;
    }

    .ad-table-wrap {
        overflow: visible;
    }

    .ad-fields {
        min-width: 0;
    }

    .ad-fields tr,
    .ad-code,
    .ad-endpoint {
        break-inside: avoid;
    }

    .ad-code pre {
        max-height: none;
        overflow: visible;
    }

    .ad-code pre code.hljs {
        white-space: pre-wrap;
        overflow-wrap: anywhere;
    }

    .ad-op {
        break-before: auto;
    }

    a {
        color: inherit;
        text-decoration: none;
    }
}
