/*!
 * Persolz – API documentation (/api-docs)
 * Stripe-like three columns: navigation | explanation | code. Builds on app.css tokens + site.css layout.
 *
 *  01 Layout & tokens      05 Tables & chips        09 Console (drawer)
 *  02 Sidebar & search     06 Code panels           10 Responsive
 *  03 Sections & rows      07 Syntax colours        11 Print
 *  04 Typography & prose   08 Endpoints, reference
 */

/* ==========================================================================
   01 Layout & tokens
   ========================================================================== */
.apidocs-page { background: var(--pz-surface); }
.apidocs, .ad-console {
  --ad-top: var(--site-header-h, 72px);
  --ad-nav-w: 272px;
  --ad-pad-x: 48px;
  --ad-gap: 48px;
  --ad-code-bg: #0E1024;
  --ad-code-bg-2: #161936;
  --ad-code-line: rgba(255, 255, 255, .08);
  --ad-code-text: #E3E5FF;
  --ad-code-muted: #9296BA;
  --ad-get: #15803D;   --ad-get-bg: #E6F6EC;
  --ad-post: #1D4ED8;  --ad-post-bg: #E7EEFD;
  --ad-patch: #B45309; --ad-patch-bg: #FDF1DC;
  --ad-put: #6D28D9;   --ad-put-bg: #F1EBFE;
  --ad-delete: #BE123C; --ad-delete-bg: #FDE8EC;
}
.apidocs {
  display: grid;
  grid-template-columns: var(--ad-nav-w) minmax(0, 1fr);
  max-width: 1760px;
  margin: 0 auto;
  color: var(--pz-text-2);
  font-size: 15px;
  line-height: 1.65;
  border-top: 1px solid var(--pz-border);
}
:root[data-theme="dark"] .apidocs, :root[data-theme="dark"] .ad-console {
  --ad-code-bg: #080917;
  --ad-code-bg-2: #10122A;
  --ad-get: #5EE08F;   --ad-get-bg: rgba(34, 197, 94, .15);
  --ad-post: #8FB4FF;  --ad-post-bg: rgba(59, 130, 246, .18);
  --ad-patch: #FBC756; --ad-patch-bg: rgba(245, 158, 11, .16);
  --ad-put: #C4B5FD;   --ad-put-bg: rgba(139, 92, 246, .2);
  --ad-delete: #FF8DA3; --ad-delete-bg: rgba(244, 63, 94, .16);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .apidocs, :root:not([data-theme="light"]) .ad-console {
    --ad-code-bg: #080917;
    --ad-code-bg-2: #10122A;
    --ad-get: #5EE08F;   --ad-get-bg: rgba(34, 197, 94, .15);
    --ad-post: #8FB4FF;  --ad-post-bg: rgba(59, 130, 246, .18);
    --ad-patch: #FBC756; --ad-patch-bg: rgba(245, 158, 11, .16);
    --ad-put: #C4B5FD;   --ad-put-bg: rgba(139, 92, 246, .2);
    --ad-delete: #FF8DA3; --ad-delete-bg: rgba(244, 63, 94, .16);
  }
}
/* html already has scroll-padding-top (header + 16px, site.css); the mobile bar adds its height below */
.ad-main { min-width: 0; }
.ad-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ad-i { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ==========================================================================
   02 Sidebar & search
   ========================================================================== */
.ad-sidebar {
  position: sticky; top: var(--ad-top); align-self: start;
  height: calc(100vh - var(--ad-top)); height: calc(100dvh - var(--ad-top));
  display: flex; flex-direction: column; min-width: 0;
  background: var(--pz-surface-2); border-right: 1px solid var(--pz-border);
}
.ad-sidebar-head { padding: 18px 16px 14px; border-bottom: 1px solid var(--pz-border); }
.ad-sidebar-title { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; font: 700 15px/1.2 var(--pz-font-heading); color: var(--pz-heading); }
.ad-sidebar-logo { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: var(--pz-gradient); color: #fff; }
.ad-sidebar-logo .icon { width: 16px; height: 16px; }
.ad-sidebar-close { display: none; margin-left: auto; width: 34px; height: 34px; border: 0; border-radius: 8px; background: transparent; color: var(--pz-muted); cursor: pointer; }
.ad-sidebar-close:hover { background: var(--pz-surface-3); color: var(--pz-heading); }
.ad-search { position: relative; }
.ad-search > .icon { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; color: var(--pz-faint); pointer-events: none; }
.ad-search-input {
  width: 100%; height: 38px; padding: 0 34px 0 34px; border: 1px solid var(--pz-border-strong); border-radius: 10px;
  background: var(--pz-surface); color: var(--pz-text); font: 14px/1 var(--pz-font-body); outline: none;
  transition: border-color var(--pz-fast), box-shadow var(--pz-fast);
}
.ad-search-input::placeholder { color: var(--pz-faint); }
.ad-search-input:focus { border-color: var(--pz-primary); box-shadow: var(--pz-ring); }
.ad-search-input::-webkit-search-cancel-button { cursor: pointer; }
.ad-search-kbd {
  position: absolute; right: 9px; top: 50%; transform: translateY(-50%); min-width: 20px; height: 20px; display: grid; place-items: center;
  border: 1px solid var(--pz-border-strong); border-bottom-width: 2px; border-radius: 5px; color: var(--pz-muted); font: 600 11px/1 var(--pz-font-body); pointer-events: none;
}
.ad-search-input:focus + .ad-search-kbd, .ad-search-input:not(:placeholder-shown) + .ad-search-kbd { display: none; }

.ad-nav { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 4px 10px 48px; scrollbar-gutter: stable; }
.ad-nav ul { list-style: none; margin: 0; padding: 0; }
.ad-nav-title { margin: 18px 10px 6px; font: 700 11px/1.2 var(--pz-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--pz-faint); }
.ad-nav-link {
  display: flex; align-items: center; gap: 8px; min-width: 0; padding: 6px 10px; border-radius: 8px;
  color: var(--pz-text-2); font-size: 14px; line-height: 1.35; text-decoration: none; transition: background var(--pz-fast), color var(--pz-fast);
}
.ad-nav-link:hover { background: var(--pz-surface-3); color: var(--pz-heading); text-decoration: none; }
.ad-nav-link:focus-visible { outline: none; box-shadow: var(--pz-ring); }
.ad-nav-link.is-active { background: var(--pz-primary-soft); color: var(--pz-primary-text); font-weight: 600; }
.ad-nav-reslink { font-weight: 550; }
.ad-nav-res.is-open > .ad-nav-reslink:not(.is-active) { color: var(--pz-heading); }
.ad-nav-count { margin-left: auto; padding: 1px 7px; border-radius: 999px; background: var(--pz-surface-3); color: var(--pz-muted); font-size: 11px; font-weight: 600; line-height: 1.5; }
.ad-nav-eps { margin: 2px 0 8px 14px !important; padding-left: 8px !important; border-left: 1px solid var(--pz-border); }
.js .ad-nav-res:not(.is-open) > .ad-nav-eps { display: none; }
.ad-nav-ep { font-size: 13px; padding: 5px 8px; gap: 6px; }
.ad-nav-ep-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-m, .ad-nav-obj { flex: none; width: 34px; font: 700 10px/1 var(--pz-font-mono); letter-spacing: .02em; }
.ad-m-get { color: var(--ad-get); }
.ad-m-post { color: var(--ad-post); }
.ad-m-patch { color: var(--ad-patch); }
.ad-m-put { color: var(--ad-put); }
.ad-m-delete { color: var(--ad-delete); }
.ad-nav-obj { color: var(--pz-faint); }
.ad-nav .is-filtered { display: none !important; }
.ad-nav-empty { margin: 16px 10px; color: var(--pz-muted); font-size: 13.5px; }
.ad-nav mark { background: color-mix(in srgb, var(--pz-gold) 45%, transparent); color: inherit; border-radius: 3px; padding: 0 1px; }

.ad-mobilebar, .ad-nav-backdrop { display: none; }

/* ==========================================================================
   03 Sections & rows
   ========================================================================== */
.ad-row {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--ad-gap);
  padding: 36px var(--ad-pad-x); border-top: 1px solid var(--pz-border);
}
.ad-section > .ad-row:first-child { border-top: 0; }
.ad-section + .ad-section { border-top: 1px solid var(--pz-border-strong); }
.ad-row-head { padding-top: 56px; }
.ad-text { min-width: 0; max-width: 680px; }
.ad-code-col { min-width: 0; }
.ad-sticky {
  position: sticky; top: calc(var(--ad-top) + 24px); display: grid; gap: 16px;
  /* a stack taller than the viewport scrolls on its own, so every panel stays reachable */
  max-height: calc(100vh - var(--ad-top) - 40px); overflow-y: auto; overscroll-behavior: contain;
  margin: -8px -10px -16px; padding: 8px 10px 22px; scrollbar-width: thin;
}
.ad-row-head .ad-code-col:empty { display: block; }

.ad-hero .ad-row-head {
  grid-template-columns: minmax(0, 1fr);
  padding-top: 48px; padding-bottom: 44px;
  background: radial-gradient(700px 320px at 0% 0%, rgba(91, 61, 245, .10), transparent 70%),
              radial-gradient(600px 300px at 100% 0%, rgba(255, 107, 74, .08), transparent 70%);
}
.ad-hero .ad-text { max-width: 820px; }
.ad-hero .ad-row-head .ad-code-col { display: none; }
.ad-crumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; font-size: 13px; color: var(--pz-muted); }
.ad-crumbs a { color: var(--pz-muted); }
.ad-crumbs a:hover { color: var(--pz-link); }
.ad-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 0; }
.ad-hero-stats { display: flex; flex-wrap: wrap; gap: 8px 22px; list-style: none; margin: 22px 0 0; padding: 0; font-size: 14px; color: var(--pz-muted); }
.ad-hero-stats strong { color: var(--pz-heading); font: 800 16px/1 var(--pz-font-heading); margin-right: 2px; }
.ad-hero-note { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 18px 0 0; font-size: 14px; color: var(--pz-text-2); }
.ad-hero-note .icon { color: var(--pz-success); }

/* ==========================================================================
   04 Typography & prose
   ========================================================================== */
.ad-h1 { margin: 0 0 14px; font: 800 clamp(30px, 3.4vw, 44px)/1.08 var(--pz-font-heading); letter-spacing: -.03em; color: var(--pz-heading); text-wrap: balance; }
.ad-h2 { margin: 0 0 12px; font: 800 clamp(24px, 2.2vw, 30px)/1.2 var(--pz-font-heading); letter-spacing: -.02em; color: var(--pz-heading); }
.ad-h3 { margin: 0 0 12px; font: 750 19px/1.35 var(--pz-font-heading); letter-spacing: -.01em; color: var(--pz-heading); }
.ad-h4 { margin: 26px 0 8px; font: 700 12px/1.3 var(--pz-font-body); letter-spacing: .07em; text-transform: uppercase; color: var(--pz-muted); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ad-kicker { margin: 0 0 8px; font: 700 12px/1.2 var(--pz-font-body); letter-spacing: .08em; text-transform: uppercase; background: var(--pz-gradient-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--pz-primary); display: inline-block; }
.ad-lead { font-size: 16.5px; line-height: 1.7; color: var(--pz-text-2); }
.ad-lead p:last-child { margin-bottom: 0; }
.ad-anchor { display: inline-grid; place-items: center; width: 26px; height: 26px; margin-left: 6px; border-radius: 6px; color: var(--pz-faint); vertical-align: middle; opacity: 0; transition: opacity var(--pz-fast), color var(--pz-fast), background var(--pz-fast); }
.ad-anchor .icon { width: 15px; height: 15px; }
.ad-h2:hover .ad-anchor, .ad-h3:hover .ad-anchor, .ad-anchor:focus-visible { opacity: 1; }
.ad-anchor:hover { color: var(--pz-link); background: var(--pz-primary-soft); }
.ad-muted { color: var(--pz-muted); font-size: 14px; }

.ad-prose > :first-child { margin-top: 0; }
.ad-prose p, .ad-prose ul, .ad-prose ol { margin: 0 0 14px; }
.ad-prose ul, .ad-prose ol { padding-left: 22px; }
.ad-prose li { margin: 4px 0; }
.ad-prose li::marker { color: var(--pz-faint); }
.ad-prose strong { color: var(--pz-heading); font-weight: 650; }
.ad-prose a, .ad-text a:not(.btn):not(.ad-chip):not(.ad-errchip):not(.ad-anchor):not(.ad-groupcard):not(.ad-download) { color: var(--pz-link); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--pz-link) 35%, transparent); text-underline-offset: 2px; }
.ad-prose a:hover { text-decoration-color: currentColor; }
.apidocs code { font-family: var(--pz-font-mono); font-size: .86em; }
.ad-prose code, .ad-col-desc code, .ad-enum code, .ad-lead code, .ad-resp-line code {
  padding: .1em .38em; border-radius: 5px; background: var(--pz-surface-3); border: 1px solid var(--pz-border); color: var(--pz-heading); overflow-wrap: anywhere;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.ad-prose blockquote {
  margin: 0 0 16px; padding: 12px 16px; border-left: 3px solid var(--pz-accent); border-radius: 0 10px 10px 0;
  background: var(--pz-accent-soft); color: var(--pz-text);
}
.ad-prose blockquote p:last-child { margin-bottom: 0; }
.ad-prose h3, .ad-prose h4 { font-family: var(--pz-font-heading); color: var(--pz-heading); }
.ad-prose .table-wrap, .ad-table-wrap { margin: 0 0 16px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ad-linkbtn { appearance: none; border: 0; padding: 0; background: none; color: var(--pz-link); font: inherit; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.ad-linkbtn:hover { color: var(--pz-link-hover); }

/* ==========================================================================
   05 Tables & chips
   ========================================================================== */
.ad-table, .ad-prose table.ad-mdtable {
  width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.55; background: transparent; box-shadow: none; border: 0;
}
.ad-table th, .ad-prose table.ad-mdtable th {
  padding: 8px 12px 8px 0; border-bottom: 1px solid var(--pz-border-strong); background: transparent;
  font: 700 11.5px/1.3 var(--pz-font-body); letter-spacing: .06em; text-transform: uppercase; color: var(--pz-muted); text-align: left; white-space: nowrap;
}
.ad-table td, .ad-prose table.ad-mdtable td { padding: 11px 12px 11px 0; border-bottom: 1px solid var(--pz-border); vertical-align: top; color: var(--pz-text-2); }
.ad-prose .table-wrap.md-table { border: 1px solid var(--pz-border); border-radius: 12px; background: var(--pz-surface); box-shadow: none; }
.ad-prose table.ad-mdtable { font-size: 14px; }
.ad-prose table.ad-mdtable th { padding: 9px 12px; background: var(--pz-surface-2); white-space: normal; letter-spacing: .04em; }
.ad-prose table.ad-mdtable td { padding: 10px 12px; }
.ad-prose table.ad-mdtable tr:last-child td { border-bottom: 0; }
.ad-prose table.ad-mdtable code { white-space: nowrap; overflow-wrap: normal; }
.ad-table tr:last-child td { border-bottom: 0; }
.ad-col-name { width: 36%; min-width: 150px; }
.ad-name { display: inline; padding: 0; border: 0; background: none; font: 650 13px/1.5 var(--pz-font-mono); color: var(--pz-heading); overflow-wrap: anywhere; word-break: break-word; }
.apidocs code.ad-name { padding: 0; border: 0; background: none; font-size: 13px; }
.ad-name-parent { color: var(--pz-faint); font-weight: 500; }
.ad-type { display: block; margin-top: 2px; font: 500 12px/1.4 var(--pz-font-mono); color: var(--pz-muted); overflow-wrap: anywhere; }
.ad-req, .ad-opt { display: inline-block; margin-top: 4px; font: 700 10.5px/1 var(--pz-font-body); letter-spacing: .05em; text-transform: uppercase; }
.ad-req { color: var(--pz-accent-text); }
.ad-opt { color: var(--pz-faint); }
.ad-enum { display: block; margin-top: 4px; font-size: 13px; color: var(--pz-muted); }
.ad-col-sample { color: var(--pz-muted); font-size: 13.5px; overflow-wrap: anywhere; }
.ad-table-fields td.ad-col-name { padding-left: calc(var(--ad-depth, 0) * 16px); }
.ad-table-fields tr[style*="--ad-depth: 1"] td, .ad-table-fields tr[style*="--ad-depth: 2"] td, .ad-table-fields tr[style*="--ad-depth: 3"] td { background: linear-gradient(90deg, var(--pz-surface-2), transparent 60%); }
.ad-objlink { white-space: nowrap; }
.ad-ctype { font: 500 11.5px/1 var(--pz-font-mono); text-transform: none; letter-spacing: 0; color: var(--pz-faint); background: var(--pz-surface-3); padding: 3px 7px; border-radius: 5px; }

.ad-chip {
  display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 10px; border-radius: 999px;
  border: 1px solid var(--pz-border); background: var(--pz-surface-2); color: var(--pz-text-2); font-size: 12.5px; font-weight: 550; white-space: nowrap; text-decoration: none;
}
.ad-chip .icon { width: 13px; height: 13px; color: var(--pz-muted); }
.ad-chip code { font-size: 12px; color: var(--pz-heading); }
a.ad-chip:hover { border-color: var(--pz-border-strong); color: var(--pz-heading); }
.ad-chip-public { background: var(--pz-success-soft); border-color: transparent; color: var(--pz-success-text); }
.ad-chip-public .icon { color: currentColor; }

.ad-status { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 6px; font: 700 12px/1 var(--pz-font-mono); }
.ad-status-2xx { background: var(--pz-success-soft); color: var(--pz-success-text); }
.ad-status-3xx { background: var(--pz-info-soft); color: var(--pz-info-text); }
.ad-status-4xx { background: var(--pz-warning-soft); color: var(--pz-warning-text); }
.ad-status-5xx { background: var(--pz-danger-soft); color: var(--pz-danger-text); }

.ad-method {
  display: inline-flex; align-items: center; justify-content: center; flex: none; min-width: 52px; height: 22px; padding: 0 7px; border-radius: 6px;
  font: 800 11px/1 var(--pz-font-mono); letter-spacing: .04em;
}
.ad-method-get { background: var(--ad-get-bg); color: var(--ad-get); }
.ad-method-post { background: var(--ad-post-bg); color: var(--ad-post); }
.ad-method-patch { background: var(--ad-patch-bg); color: var(--ad-patch); }
.ad-method-put { background: var(--ad-put-bg); color: var(--ad-put); }
.ad-method-delete { background: var(--ad-delete-bg); color: var(--ad-delete); }

/* ==========================================================================
   06 Code panels
   ========================================================================== */
.ad-panel {
  min-width: 0; border-radius: 12px; overflow: hidden; background: var(--ad-code-bg); color: var(--ad-code-text);
  border: 1px solid var(--ad-code-line); box-shadow: 0 10px 22px -16px rgba(14, 16, 36, .6);
}
.ad-panel-head {
  display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 6px 6px 14px;
  background: var(--ad-code-bg-2); border-bottom: 1px solid var(--ad-code-line);
}
.ad-panel-title { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 8px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font: 600 12.5px/1.3 var(--pz-font-body); color: #C9CBE6; }
.ad-panel-path { font: 600 12.5px/1.3 var(--pz-font-mono); color: #E9EAF6; overflow: hidden; text-overflow: ellipsis; }
.ad-panel .ad-method { min-width: 0; height: 20px; padding: 0 6px; font-size: 10.5px; }
.ad-panel .ad-method-get { background: rgba(34, 197, 94, .16); color: #5EE08F; }
.ad-panel .ad-method-post { background: rgba(59, 130, 246, .2); color: #93B8FF; }
.ad-panel .ad-method-patch { background: rgba(245, 158, 11, .18); color: #FBC756; }
.ad-panel .ad-method-put { background: rgba(139, 92, 246, .22); color: #C4B5FD; }
.ad-panel .ad-method-delete { background: rgba(244, 63, 94, .18); color: #FF8DA3; }
.ad-panel .ad-status-2xx { background: rgba(34, 197, 94, .16); color: #5EE08F; }
.ad-panel .ad-status-4xx { background: rgba(245, 158, 11, .18); color: #FBC756; }
.ad-panel .ad-status-5xx { background: rgba(244, 63, 94, .18); color: #FF8DA3; }
.ad-tabs { display: flex; flex: none; gap: 2px; padding: 3px; border-radius: 9px; background: rgba(255, 255, 255, .05); overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.ad-tabs::-webkit-scrollbar { display: none; }
.ad-tab {
  appearance: none; border: 0; flex: none; padding: 6px 9px; border-radius: 6px; background: transparent; color: #A3A6C7;
  font: 600 12px/1 var(--pz-font-body); cursor: pointer; white-space: nowrap; transition: background var(--pz-fast), color var(--pz-fast);
}
.ad-tab:hover { color: #fff; }
.ad-tab.is-active { background: rgba(255, 255, 255, .13); color: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .3); }
.ad-tab:focus-visible, .ad-copy:focus-visible, .ad-pre:focus-visible { outline: 2px solid #9B8CFF; outline-offset: -2px; }
.ad-lang-tag { flex: none; padding: 3px 8px; border-radius: 6px; background: rgba(255, 255, 255, .06); color: #A3A6C7; font: 600 11.5px/1.2 var(--pz-font-body); }
.ad-copy {
  appearance: none; display: inline-flex; align-items: center; gap: 5px; flex: none; height: 30px; padding: 0 10px; border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, .1); background: rgba(255, 255, 255, .04); color: #C9CBE6; font: 600 12px/1 var(--pz-font-body); cursor: pointer;
  transition: background var(--pz-fast), color var(--pz-fast), border-color var(--pz-fast);
}
.ad-copy .icon { width: 14px; height: 14px; }
.ad-panel-head .ad-copy { margin-left: auto; }
.ad-copy:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.ad-copy.is-done { color: #5EE08F; border-color: rgba(94, 224, 143, .4); }
.ad-panel-body { position: relative; }
.ad-pre {
  display: none; margin: 0; padding: 14px 16px 16px; overflow: auto; max-height: min(540px, 72vh);
  background: transparent; color: var(--ad-code-text); border: 0; border-radius: 0;
  font: 12.5px/1.65 var(--pz-font-mono); white-space: pre; tab-size: 2; -moz-tab-size: 2;
  scrollbar-color: rgba(255, 255, 255, .22) transparent;
}
.ad-pre.is-active { display: block; }
.ad-pre code { font: inherit; color: inherit; background: none; border: 0; padding: 0; }
.ad-pre::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .2); border-color: transparent; }
.ad-panel-note { margin: 0; padding: 10px 14px; border-top: 1px solid var(--ad-code-line); color: var(--ad-code-muted); font-size: 12.5px; }
.ad-panel-response .ad-pre { max-height: min(440px, 48vh); }

/* ==========================================================================
   07 Syntax colours (dark theme in both colour schemes)
   ========================================================================== */
.ad-pre .c-key { color: #B9A9FF; }
.ad-pre .c-str { color: #7EE0B8; }
.ad-pre .c-num { color: #FFC27A; }
.ad-pre .c-com { color: #7A7FA8; font-style: italic; }
.ad-pre .c-kw { color: #FF9878; }
.ad-pre .c-var { color: #8FD3FF; }
.ad-pre .c-fn { color: #FFD580; }
.ad-pre .c-tag { color: #FF8DA3; }
.ad-pre .c-attr { color: #FFC27A; }
.ad-pre .c-flag { color: #8FD3FF; }
.ad-pre .c-head { color: #C4B5FD; }

/* ==========================================================================
   08 Endpoints & reference
   ========================================================================== */
.ad-ep-head { margin-bottom: 14px; }
.ad-ep-line { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; padding: 8px 10px; border-radius: 10px; background: var(--pz-surface-2); border: 1px solid var(--pz-border); }
.ad-path { font: 600 13.5px/1.4 var(--pz-font-mono) !important; color: var(--pz-heading); overflow-wrap: anywhere; min-width: 0; flex: 1 1 auto; background: none !important; border: 0 !important; padding: 0 !important; }
.ad-path-param { color: var(--pz-primary-text); }
.ad-iconbtn {
  appearance: none; display: inline-grid; place-items: center; flex: none; width: 30px; height: 30px; border: 0; border-radius: 7px;
  background: transparent; color: var(--pz-faint); cursor: pointer; transition: background var(--pz-fast), color var(--pz-fast);
}
.ad-iconbtn .icon { width: 15px; height: 15px; }
.ad-iconbtn:hover { background: var(--pz-surface-3); color: var(--pz-heading); }
.ad-iconbtn.is-done { color: var(--pz-success); }
.ad-ep-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.ad-resp-line { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; margin: 0 0 12px; }
.ad-fields-details { margin: 0 0 14px; }
.ad-fields-details > summary {
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer; padding: 6px 12px; border-radius: 8px;
  border: 1px solid var(--pz-border); background: var(--pz-surface-2); color: var(--pz-text-2); font-size: 13.5px; font-weight: 600; list-style: none;
}
.ad-fields-details > summary::-webkit-details-marker { display: none; }
.ad-fields-details > summary::before { content: "+"; font: 700 14px/1 var(--pz-font-mono); color: var(--pz-primary-text); }
.ad-fields-details[open] > summary::before { content: "–"; }
.ad-fields-details[open] > summary { margin-bottom: 10px; }
.ad-errors { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 18px 0 0; font-size: 13px; }
.ad-errors-label { color: var(--pz-muted); margin-right: 2px; }
.ad-errchip {
  display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 8px; border-radius: 6px; border: 1px solid var(--pz-border);
  color: var(--pz-text-2); font: 500 12px/1 var(--pz-font-mono); text-decoration: none; white-space: nowrap;
}
.ad-errchip b { color: var(--pz-warning-text); }
.ad-errchip:hover { border-color: var(--pz-border-strong); color: var(--pz-heading); text-decoration: none; }
.ad-try { margin: 18px 0 0; }

.ad-objects-line { margin: 12px 0 0; font-size: 14px; color: var(--pz-muted); }
.ad-object { background: linear-gradient(180deg, var(--pz-surface-2), transparent 70%); }
.ad-panel-index .ad-eplist { list-style: none; margin: 0; padding: 8px 0; max-height: min(520px, 70vh); overflow-y: auto; }
.ad-eplist a { display: flex; align-items: center; gap: 10px; padding: 6px 14px; color: #D7D9F0; text-decoration: none !important; font: 500 12.5px/1.4 var(--pz-font-mono); }
.ad-eplist a:hover { background: rgba(255, 255, 255, .06); color: #fff; }
.ad-eplist .ad-method { min-width: 54px; }
.ad-eplist-path { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ad-groupgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 22px; }
.ad-groupcard {
  display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--pz-border);
  background: var(--pz-surface); color: var(--pz-text-2); text-decoration: none; transition: border-color var(--pz-fast), box-shadow var(--pz-fast), transform var(--pz-fast);
}
.ad-groupcard:hover { border-color: color-mix(in srgb, var(--pz-primary) 45%, var(--pz-border)); box-shadow: var(--pz-shadow-md); transform: translateY(-1px); text-decoration: none; }
.ad-groupcard-head { display: flex; align-items: center; gap: 8px; color: var(--pz-heading); font-size: 15px; }
.ad-groupcard-desc { font-size: 13px; line-height: 1.5; color: var(--pz-muted); }
.ad-ref-intro .ad-text { max-width: 900px; }
.ad-ref-intro .ad-row-head { grid-template-columns: minmax(0, 1fr); }
.ad-ref-intro .ad-code-col { display: none; }

.ad-events { display: grid; gap: 8px; margin-top: 8px; }
.ad-event { border: 1px solid var(--pz-border); border-radius: 12px; background: var(--pz-surface); overflow: hidden; }
.ad-event > summary { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; padding: 12px 16px; cursor: pointer; list-style: none; }
.ad-event > summary::-webkit-details-marker { display: none; }
.ad-event > summary:hover { background: var(--pz-surface-2); }
.ad-event-name { grid-row: span 2; align-self: start; padding: 3px 8px !important; border-radius: 6px; background: var(--pz-primary-soft) !important; border: 0 !important; color: var(--pz-primary-text) !important; font: 650 12.5px/1.4 var(--pz-font-mono) !important; white-space: nowrap; }
.ad-event-label { color: var(--pz-heading); font-weight: 650; font-size: 14.5px; }
.ad-event-desc { color: var(--pz-muted); font-size: 13.5px; line-height: 1.5; }
.ad-event[open] > summary { border-bottom: 1px solid var(--pz-border); }
.ad-event-body { padding: 14px 16px 16px; display: grid; gap: 12px; }

.ad-changelog { display: grid; gap: 16px; margin-top: 18px; }
.ad-change { padding: 16px 18px; border: 1px solid var(--pz-border); border-radius: 12px; background: var(--pz-surface-2); }
.ad-change header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; color: var(--pz-muted); font-size: 13.5px; }
.ad-change ul { margin: 0; padding-left: 20px; }
.ad-change li { margin: 4px 0; }

.ad-downloads { display: grid; gap: 10px; margin-top: 18px; }
.ad-download {
  display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--pz-border);
  background: var(--pz-surface); color: var(--pz-text-2); text-decoration: none; min-width: 0;
}
.ad-download:hover { border-color: color-mix(in srgb, var(--pz-primary) 45%, var(--pz-border)); box-shadow: var(--pz-shadow-sm); text-decoration: none; }
.ad-download > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.ad-download strong { color: var(--pz-heading); font-weight: 650; }
.ad-download small { color: var(--pz-muted); font: 12px/1.4 var(--pz-font-mono); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-download-icon { display: inline-grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 10px; background: var(--pz-primary-soft); color: var(--pz-primary-text); }

.ad-console-cta {
  display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; margin-top: 20px; padding: 18px 20px;
  border-radius: 14px; border: 1px solid color-mix(in srgb, var(--pz-primary) 25%, var(--pz-border)); background: var(--pz-gradient-soft);
}
.ad-console-cta p { margin: 0 0 4px; }
.ad-footnote { margin: 0; padding: 28px var(--ad-pad-x) 48px; border-top: 1px solid var(--pz-border); color: var(--pz-muted); font-size: 13.5px; }

/* ==========================================================================
   09 Console (drawer)
   ========================================================================== */
.ad-console { position: fixed; inset: 0; z-index: 95; }
.ad-console[hidden] { display: none; }
.ad-console-backdrop { position: absolute; inset: 0; background: var(--pz-overlay); animation: ad-fade .18s ease-out; }
.ad-console-panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(660px, 100vw); display: flex; flex-direction: column;
  background: var(--pz-surface); color: var(--pz-text-2); box-shadow: var(--pz-shadow-xl); animation: ad-slide .22s var(--pz-ease-out);
}
@keyframes ad-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ad-slide { from { transform: translateX(32px); opacity: .4; } to { transform: none; opacity: 1; } }
.ad-console-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 18px 20px 14px; border-bottom: 1px solid var(--pz-border); }
.ad-console-title { display: flex; align-items: center; gap: 8px; margin: 0; font: 800 20px/1.2 var(--pz-font-heading); color: var(--pz-heading); }
.ad-console-sub { margin: 4px 0 0; font-size: 13.5px; color: var(--pz-muted); }
.ad-console-body { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 18px 20px 40px; display: grid; gap: 18px; align-content: start; }
.ad-console-warn { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 10px; background: var(--pz-warning-soft); color: var(--pz-warning-text); font-size: 13.5px; line-height: 1.5; }
.ad-console-warn .icon { margin-top: 2px; }
.adc-field { display: grid; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.adc-field[hidden] { display: none; }
.adc-label { display: block; padding: 0; font-size: 13px; font-weight: 650; color: var(--pz-heading); }
.adc-label-sm { font-weight: 550; color: var(--pz-text-2); }
.adc-label-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.adc-hint { margin: 0; font-size: 12.5px; color: var(--pz-muted); line-height: 1.5; }
.adc-error { margin: 0; font-size: 13px; color: var(--pz-danger-text); }
.adc-url { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 8px 10px; border-radius: 10px; background: var(--ad-code-bg); }
.adc-url code { min-width: 0; overflow-wrap: anywhere; color: #E3E5FF; font: 600 12.5px/1.4 var(--pz-font-mono); background: none; border: 0; padding: 0; }
.adc-url .ad-method-get { background: rgba(34, 197, 94, .16); color: #5EE08F; }
.adc-url .ad-method-post { background: rgba(59, 130, 246, .2); color: #93B8FF; }
.adc-url .ad-method-patch { background: rgba(245, 158, 11, .18); color: #FBC756; }
.adc-url .ad-method-put { background: rgba(139, 92, 246, .22); color: #C4B5FD; }
.adc-url .ad-method-delete { background: rgba(244, 63, 94, .18); color: #FF8DA3; }
.ad-console code { font-family: var(--pz-font-mono); }
.adc-url .ad-method { min-width: 0; }
.adc-inline { display: flex; gap: 8px; }
.adc-inline .input { flex: 1; min-width: 0; }
.adc-params { display: grid; gap: 10px; }
.adc-param { display: grid; grid-template-columns: minmax(120px, 34%) minmax(0, 1fr); gap: 8px 12px; align-items: center; }
.adc-param-name { font: 600 12.5px/1.3 var(--pz-font-mono); color: var(--pz-heading); overflow-wrap: anywhere; }
.adc-param-name small { display: block; font: 500 11px/1.3 var(--pz-font-body); color: var(--pz-muted); }
.adc-param-name .ad-req { margin-top: 2px; }
.adc-group-title { margin: 6px 0 0; font: 700 11.5px/1.2 var(--pz-font-body); letter-spacing: .06em; text-transform: uppercase; color: var(--pz-muted); }
.adc-body { min-height: 180px; font: 12.5px/1.6 var(--pz-font-mono); tab-size: 2; resize: vertical; }
.adc-idem { font: 12.5px/1.4 var(--pz-font-mono); }
.adc-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.adc-kbd { font-size: 12px; color: var(--pz-faint); }
.adc-kbd kbd { font: 600 11px/1 var(--pz-font-body); padding: 2px 5px; border: 1px solid var(--pz-border-strong); border-bottom-width: 2px; border-radius: 4px; }
.adc-doclink { margin-left: auto; font-size: 13px; }
.adc-result { display: grid; gap: 10px; }
.adc-result[hidden] { display: none; }
.adc-status-line { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-weight: 650; color: var(--pz-heading); }
.adc-meta { margin-left: auto; font: 500 12.5px/1 var(--pz-font-mono); color: var(--pz-muted); }
.adc-unlock[hidden], .adc-paste[hidden] { display: none; }
.adc-keyok { color: var(--pz-success-text); }

/* ==========================================================================
   10 Responsive
   ========================================================================== */
@media (max-width: 1279px) {
  .apidocs { --ad-pad-x: 40px; --ad-nav-w: 256px; }
  .ad-row { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .ad-text { max-width: 820px; }
  .ad-code-col { max-width: 820px; }
  .ad-code-col:empty, .ad-row-head .ad-code-col { display: none; }
  .ad-group .ad-row-head .ad-code-col { display: block; }
  .ad-sticky { position: static; max-height: none; overflow: visible; margin: 0; padding: 0; }
}
@media (max-width: 1023px) {
  .apidocs { grid-template-columns: minmax(0, 1fr); --ad-pad-x: 28px; border-top: 0; }
  .apidocs [id] { scroll-margin-top: 52px; }
  .ad-mobilebar {
    display: flex; align-items: center; gap: 12px; position: sticky; top: var(--ad-top); z-index: 40; height: 48px; padding: 0 var(--ad-pad-x);
    background: color-mix(in srgb, var(--pz-surface) 92%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--pz-border); border-top: 1px solid var(--pz-border);
  }
  .ad-mobilebar-btn {
    appearance: none; display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 9px; border: 1px solid var(--pz-border-strong);
    background: var(--pz-surface); color: var(--pz-heading); font: 650 13.5px/1 var(--pz-font-body); cursor: pointer;
  }
  .ad-mobilebar-btn .icon { width: 16px; height: 16px; }
  .ad-mobilebar-current { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13.5px; color: var(--pz-muted); }
  .ad-sidebar {
    position: fixed; top: 0; left: 0; bottom: 0; z-index: 70; width: min(88vw, 340px); height: auto; max-height: none; align-self: stretch;
    transform: translateX(-104%); transition: transform .25s var(--pz-ease-out); box-shadow: var(--pz-shadow-xl); visibility: hidden;
  }
  .ad-sidebar-close { display: inline-grid; place-items: center; }
  .ad-nav-open .ad-sidebar { transform: none; visibility: visible; }
  .ad-nav-backdrop { display: block; position: fixed; inset: 0; z-index: 69; background: var(--pz-overlay); opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s; }
  .ad-nav-open .ad-nav-backdrop { opacity: 1; visibility: visible; }
  .ad-nav-open { overflow: hidden; }
  .ad-group .ad-row-head .ad-code-col { display: none; }
}
@media (max-width: 767px) {
  .apidocs { --ad-pad-x: 16px; font-size: 15px; }
  .ad-row { padding-top: 28px; padding-bottom: 28px; }
  .ad-row-head { padding-top: 36px; }
  .ad-hero .ad-row-head { padding-top: 28px; padding-bottom: 30px; }
  .ad-hero-actions .btn { flex: 1 1 auto; justify-content: center; }
  .ad-groupgrid { grid-template-columns: minmax(0, 1fr); }
  .ad-table thead { display: none; }
  .ad-table, .ad-table tbody, .ad-table tr, .ad-table td { display: block; width: 100%; }
  .ad-table tr { padding: 10px 0; border-bottom: 1px solid var(--pz-border); }
  .ad-table tr:last-child { border-bottom: 0; }
  .ad-table td { padding: 2px 0; border: 0; }
  .ad-table td.ad-col-name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; min-width: 0; }
  .ad-table td.ad-col-name .ad-type, .ad-table td.ad-col-name .ad-req, .ad-table td.ad-col-name .ad-opt { display: inline-block; margin: 0; }
  .ad-table-fields td.ad-col-name { padding-left: calc(var(--ad-depth, 0) * 12px); }
  .ad-table-fields td.ad-col-desc { padding-left: calc(var(--ad-depth, 0) * 12px); }
  .ad-prose table.ad-mdtable { font-size: 13.5px; }
  .ad-prose .table-wrap { margin-left: calc(var(--ad-pad-x) * -1); margin-right: calc(var(--ad-pad-x) * -1); padding: 0 var(--ad-pad-x); }
  .ad-prose table.ad-mdtable td, .ad-prose table.ad-mdtable th { min-width: 110px; }
  .ad-panel { border-radius: 10px; }
  .ad-panel-head { flex-wrap: wrap; padding: 6px 6px 6px 12px; }
  .ad-panel-title { flex-basis: calc(100% - 110px); }
  .ad-tabs { order: 3; flex: 1 1 100%; }
  .ad-copy span { display: none; }
  .ad-pre { font-size: 12px; max-height: 420px; }
  .ad-event > summary { grid-template-columns: minmax(0, 1fr); }
  .ad-event-name { grid-row: auto; justify-self: start; }
  .adc-param { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .ad-console-head, .ad-console-body { padding-left: 16px; padding-right: 16px; }
  .adc-kbd { display: none; }
}

/* ==========================================================================
   11 Print
   ========================================================================== */
@media print {
  @page { margin: 14mm 12mm; }
  .site-header, .site-footer, .skip-link, .ad-sidebar, .ad-mobilebar, .ad-nav-backdrop, .ad-console, .ad-copy, .ad-iconbtn,
  .ad-anchor, .ad-tabs, .ad-try, .ad-hero-actions, .ad-hero-note, .ad-console-cta .btn, .ad-panel-index, .ad-sprite { display: none !important; }
  .apidocs { display: block; max-width: none; border: 0; font-size: 10.5pt; color: #111; }
  .ad-row, .ad-hero .ad-row-head { display: block; padding: 10pt 0; background: none !important; border-top: 1px solid #ddd; }
  .ad-row-head { padding-top: 14pt; }
  .ad-section { break-before: auto; }
  .ad-group { break-before: page; }
  .ad-text, .ad-code-col { max-width: none; }
  .ad-code-col { margin-top: 8pt; }
  .ad-sticky { position: static; display: block; max-height: none; overflow: visible; margin: 0; padding: 0; }
  .ad-panel { background: #fff !important; color: #111 !important; border: 1px solid #cfd1dc; box-shadow: none; margin-bottom: 8pt; break-inside: avoid; }
  .ad-panel-head { background: #f3f3f8 !important; border-bottom: 1px solid #cfd1dc; min-height: 0; }
  .ad-panel-title, .ad-panel-path, .ad-lang-tag { color: #222 !important; }
  .ad-pre { max-height: none !important; overflow: visible !important; white-space: pre-wrap; word-break: break-word; color: #111 !important; font-size: 8.5pt; }
  .ad-pre .c-key { color: #4B2EE6; } .ad-pre .c-str { color: #0F7A5F; } .ad-pre .c-num { color: #A65A06; }
  .ad-pre .c-com { color: #666; } .ad-pre .c-kw { color: #C93E1C; } .ad-pre .c-var { color: #0369A1; }
  .ad-pre .c-fn, .ad-pre .c-attr { color: #8A5A00; } .ad-pre .c-tag { color: #BE123C; } .ad-pre .c-flag { color: #0369A1; }
  .ad-table tr, .ad-event, .ad-change { break-inside: avoid; }
  .ad-h2, .ad-h3 { break-after: avoid; }
  a { color: inherit !important; text-decoration: none !important; }
  .ad-fields-details > summary { display: none; }
}
