/* swagger-ui reskin for /api-docs. Tokens and shared chrome live in
   developer-docs.css. Many selectors exist only to outrank swagger-ui.css. */

.swagger-ui .topbar {
  display: none;
}

.swagger-ui,
.swagger-ui * {
  font-family: var(--dc-sans) !important;
}

.swagger-ui :is(code, pre, pre *, textarea, .microlight, .opblock-summary-path, .opblock-summary-path *,
  .opblock-summary-path__deprecated, .opblock-summary-operation-id, .parameter__type, .parameter__in,
  .parameter__name, .prop-type, .prop-format, .model, .model *, .response-col_status, .request-url, .base-url) {
  font-family: var(--dc-mono) !important;
}

.swagger-ui {
  color: var(--dc-text-2);
}

.swagger-ui .wrapper {
  max-width: var(--dc-content-width);
  margin: 0;
  padding: 0 48px;
}

.swagger-ui a {
  color: var(--dc-primary);
  text-decoration: none;
  transition: color 0.2s ease;
}

.swagger-ui a:hover {
  color: var(--dc-primary-hover);
}

/* Intro */

.swagger-ui .information-container.wrapper {
  padding-top: 8px;
}

.swagger-ui .info {
  margin: 32px 0 24px;
}

.swagger-ui .info hgroup.main {
  margin: 0 0 24px;
}

.swagger-ui .info .title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  border: none;
  color: var(--dc-text-1);
  font-size: 30px;
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.2;
}

.swagger-ui .info .title small {
  top: 0;
  margin: 0;
  padding: 2px 8px;
  background: var(--dc-hover);
  border-radius: 999px;
}

.swagger-ui .info .title small pre {
  margin: 0;
  padding: 0 !important;
  background: none !important;
  border: none;
  color: var(--dc-text-3);
  font-size: 12px;
  font-weight: 500;
}

.swagger-ui .info .title small.version-stamp {
  background: var(--dc-primary-soft);
}

.swagger-ui .info .title small.version-stamp pre {
  color: var(--dc-primary-strong);
}

.swagger-ui .info hgroup.main a {
  display: inline-block;
  margin-top: 10px;
  font-size: 13px;
}

.swagger-ui .info hgroup.main a span {
  display: none;
}

.swagger-ui .info hgroup.main a::after {
  content: "Download OpenAPI spec";
  font-weight: 500;
}

.swagger-ui .info :is(.description, .renderedMarkdown) {
  max-width: 52rem;
}

/* Prose (spec descriptions, operation descriptions) */

.swagger-ui :is(.info, .markdown, .renderedMarkdown) :is(p, li) {
  margin: 0 0 14px;
  color: var(--dc-text-2);
  font-size: 15px;
  line-height: 1.6;
}

.swagger-ui :is(.info, .markdown, .renderedMarkdown) li {
  margin-bottom: 6px;
}

.swagger-ui :is(.info, .markdown, .renderedMarkdown) :is(h1, h2, h3, h4, h5) {
  color: var(--dc-text-1);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.35;
}

.swagger-ui .info :is(h1, h2) {
  margin: 48px 0 12px;
  padding-top: 24px;
  border-top: 1px solid var(--dc-divider);
  font-size: 22px;
}

.swagger-ui :is(.info, .markdown, .renderedMarkdown) h3 {
  margin: 32px 0 10px;
  font-size: 17px;
}

.swagger-ui :is(.info, .markdown, .renderedMarkdown) h4 {
  margin: 24px 0 8px;
  font-size: 15px;
}

.swagger-ui .opblock-description-wrapper :is(h3, h4) {
  margin-top: 20px;
}

/* Inline code: quiet, not red. */

.swagger-ui :is(.info, .markdown, .renderedMarkdown, .computed-url, .api-docs-enum-inline, .api-docs-enum-list) code {
  padding: 2px 6px;
  background: var(--dc-code-bg);
  border: 1px solid var(--dc-divider);
  border-radius: 4px;
  color: var(--dc-text-1);
  font-size: 0.84em;
  font-weight: 500;
  word-break: break-word;
}

.swagger-ui :is(.api-docs-enum-inline, .api-docs-enum-list) code {
  padding: 1px 6px;
  font-size: 12px;
  font-weight: 400;
  word-break: normal;
}

/* Tables: markdown tables in descriptions, and parameter/response tables. */

.swagger-ui :is(.markdown, .renderedMarkdown) table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  margin: 8px 0 20px;
  border-collapse: collapse;
  font-size: 14px;
}

.swagger-ui :is(.markdown, .renderedMarkdown) table :is(th, td) {
  padding: 10px 16px 10px 0;
  border-bottom: 1px solid var(--dc-divider);
  color: var(--dc-text-2);
  line-height: 1.55;
  text-align: left;
  vertical-align: top;
}

.swagger-ui table thead tr .col_header,
.swagger-ui table thead tr td,
.swagger-ui table thead tr th {
  padding: 10px 0;
  font-family: var(--dc-sans) !important;
}

.swagger-ui :is(.markdown, .renderedMarkdown) table th,
.swagger-ui table thead tr .col_header,
.swagger-ui table thead tr td,
.swagger-ui table thead tr th {
  border-bottom: 1px solid var(--dc-border);
  color: var(--dc-text-3);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.swagger-ui :is(.markdown, .renderedMarkdown) table th {
  white-space: nowrap;
}

.swagger-ui :is(.markdown, .renderedMarkdown) table td:not(:has(> code:only-child)) {
  min-width: 11rem;
}

.swagger-ui :is(.markdown, .renderedMarkdown) table code {
  white-space: nowrap;
  word-break: normal;
}

.swagger-ui :is(.markdown, .renderedMarkdown) table th code {
  font-size: 11px;
  letter-spacing: 0;
  text-transform: none;
}

.swagger-ui table tbody tr td {
  padding: 14px 0;
  border-bottom: 1px solid var(--dc-divider);
}

.swagger-ui table tbody tr:last-child td {
  border-bottom: none;
}

/* Code blocks */

.swagger-ui :is(.info, .markdown, .renderedMarkdown) pre,
.swagger-ui .highlight-code > .microlight,
.swagger-ui .opblock-body pre.microlight,
.swagger-ui .model-example .microlight,
.swagger-ui .curl-command .microlight {
  margin: 0 0 18px;
  padding: 14px 16px !important;
  background: var(--dc-bg-subtle) !important;
  border: 1px solid var(--dc-border);
  border-radius: var(--dc-radius-lg);
  color: var(--dc-text-1) !important;
  font-size: 13px;
  line-height: 1.65;
  white-space: pre !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  overflow-x: auto;
}

.swagger-ui :is(.info, .markdown, .renderedMarkdown) pre code {
  padding: 0;
  background: none;
  border: none;
  color: inherit;
  font-size: inherit;
  font-weight: 400;
}

/* The highlighter sets inline colors and backgrounds on every token. */
.swagger-ui .highlight-code > .microlight code,
.swagger-ui .microlight span {
  background: none !important;
}

.swagger-ui .microlight code {
  color: var(--dc-text-1);
}

.swagger-ui .microlight code,
.swagger-ui .microlight code span {
  white-space: pre !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

/* Copy buttons (endpoint path on hover, curl/request URL blocks). */
.swagger-ui .copy-to-clipboard {
  background-color: transparent;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 14px 14px;
  border-radius: var(--dc-radius);
  transition: background-color 0.15s ease;
}

.swagger-ui .copy-to-clipboard:hover {
  background-color: var(--dc-hover);
}

.swagger-ui .copy-to-clipboard:active {
  background-color: var(--dc-divider);
}

/* swagger-ui binds the endpoint copy handler to this svg: keep it as the
   (invisible) click target over our icon rather than hiding it. */
.swagger-ui .copy-to-clipboard svg {
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.swagger-ui .copy-to-clipboard button {
  background: none;
}

/* Servers + Authorize */

.swagger-ui .scheme-container {
  max-width: var(--dc-content-width);
  box-sizing: border-box;
  margin: 16px 0 0;
  padding: 0 48px;
  background: none;
  box-shadow: none;
}

.swagger-ui .scheme-container .schemes {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  max-width: none;
  margin: 0 0 16px;
  padding: 12px 12px 12px 20px;
  background: var(--dc-bg-subtle);
  border: 1px solid var(--dc-border);
  border-radius: var(--dc-radius-lg);
}

.swagger-ui .scheme-container .schemes > .schemes-server-container {
  display: block;
  min-width: 0;
}

.api-docs-base-url {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 12px;
}

.api-docs-base-url-label {
  color: var(--dc-text-3);
  font-size: 13px;
  font-weight: 500;
}

.swagger-ui .api-docs-base-url-value {
  color: var(--dc-text-1);
  font-size: 14px;
  font-weight: 500;
  overflow-wrap: anywhere;
}

.swagger-ui .auth-wrapper {
  align-self: center;
}

/* Form controls, Naive UI flavored. */

.swagger-ui select,
.swagger-ui textarea,
.swagger-ui input[type=text],
.swagger-ui input[type=password],
.swagger-ui input[type=search],
.swagger-ui input[type=email],
.swagger-ui input[type=file] {
  background-color: var(--dc-bg);
  border: 1px solid var(--dc-border);
  border-radius: var(--dc-radius);
  box-shadow: none;
  color: var(--dc-text-1);
  font-size: 14px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.swagger-ui select {
  padding: 7px 36px 7px 10px;
  font-weight: 400;
}

.swagger-ui select:hover,
.swagger-ui input[type=text]:hover,
.swagger-ui textarea:hover {
  border-color: var(--dc-primary-hover);
}

.swagger-ui :is(select, input, textarea):focus {
  border-color: var(--dc-primary);
  box-shadow: var(--dc-focus-ring);
  outline: none;
}

.swagger-ui textarea {
  background: var(--dc-bg-subtle);
  font-size: 13px;
}

.swagger-ui .btn {
  padding: 6px 16px;
  background: var(--dc-bg);
  border: 1px solid var(--dc-border);
  border-radius: var(--dc-radius);
  box-shadow: none;
  color: var(--dc-text-2);
  font-size: 14px;
  font-weight: 500;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.swagger-ui .btn:hover {
  border-color: var(--dc-primary-hover);
  box-shadow: none;
  color: var(--dc-primary-hover);
}

.swagger-ui .btn.authorize {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-color: var(--dc-primary);
  color: var(--dc-primary);
}

.swagger-ui .btn.authorize span {
  padding: 0;
}

.swagger-ui .btn.authorize svg {
  fill: currentColor;
}

.swagger-ui .btn.execute,
.swagger-ui .auth-btn-wrapper .btn.modal-btn.authorize {
  background: var(--dc-primary);
  border-color: var(--dc-primary);
  color: #fff;
}

.swagger-ui .btn.execute:hover,
.swagger-ui .auth-btn-wrapper .btn.modal-btn.authorize:hover {
  background: var(--dc-primary-hover);
  border-color: var(--dc-primary-hover);
  color: #fff;
}

.swagger-ui .btn.cancel {
  border-color: var(--dc-border);
  color: var(--dc-text-2);
}

.swagger-ui .btn-group {
  gap: 8px;
  padding: 16px 20px;
}

.swagger-ui .authorization__btn svg,
.swagger-ui .locked,
.swagger-ui .unlocked {
  fill: var(--dc-text-3);
}

/* Tag groups */

.swagger-ui .opblock-tag-section {
  margin-top: 8px;
}

.swagger-ui .opblock-tag {
  margin: 32px 0 12px;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--dc-divider);
  color: var(--dc-text-1);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.swagger-ui .opblock-tag:hover {
  background: none;
}

.swagger-ui .opblock-tag a.nostyle,
.swagger-ui .opblock-tag a.nostyle span {
  color: var(--dc-text-1);
}

.swagger-ui .opblock-tag small {
  color: var(--dc-text-3);
  font-size: 14px;
}

.swagger-ui .opblock-tag small .renderedMarkdown p {
  margin: 0;
  color: var(--dc-text-3);
  font-size: 14px;
}

.swagger-ui .opblock-tag .expand-operation svg {
  fill: var(--dc-text-3);
  width: 16px;
  height: 16px;
}

/* HTTP methods: one palette for the sidebar tags and operation headers,
   Naive UI tag style (tinted fill, colored text). */

.dc-method-get,
.swagger-ui .opblock-get {
  --dc-method: var(--dc-get);
  --dc-method-bg: var(--dc-get-bg);
}

.dc-method-post,
.swagger-ui .opblock-post {
  --dc-method: var(--dc-post);
  --dc-method-bg: var(--dc-post-bg);
}

.dc-method-put,
.dc-method-patch,
.swagger-ui :is(.opblock-put, .opblock-patch) {
  --dc-method: var(--dc-put);
  --dc-method-bg: var(--dc-put-bg);
}

.dc-method-delete,
.swagger-ui .opblock-delete {
  --dc-method: var(--dc-delete);
  --dc-method-bg: var(--dc-delete-bg);
}

.dc-method {
  display: inline-block;
  flex: 0 0 auto;
  box-sizing: border-box;
  min-width: 42px;
  padding: 2px 0;
  background: var(--dc-method-bg, var(--dc-get-bg));
  border-radius: 4px;
  color: var(--dc-method, var(--dc-get));
  font-family: var(--dc-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.5;
  text-align: center;
  text-transform: uppercase;
}

.dc-docs-sidebar-link .dc-method {
  margin-top: 1px;
}

/* Operations: white cards; method color lives only in the tag. The method
   list matches swagger-ui's per-method specificity. */

.swagger-ui .opblock:is(.opblock-get, .opblock-post, .opblock-put, .opblock-patch, .opblock-delete, .opblock-head, .opblock-options) {
  margin: 0 0 10px;
  background: var(--dc-bg);
  border: 1px solid var(--dc-border);
  border-radius: var(--dc-radius-lg);
  box-shadow: none;
  overflow: hidden;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.swagger-ui :is(.opblock, .opblock-tag-section) {
  scroll-margin-top: calc(var(--dc-header-height) + 16px);
}

.swagger-ui .opblock:hover {
  border-color: var(--dc-border-strong);
}

.swagger-ui .opblock.is-open {
  box-shadow: var(--dc-shadow-raised);
}

.swagger-ui .opblock .opblock-summary {
  padding: 10px 14px;
  border-color: var(--dc-divider) !important;
}

.swagger-ui .opblock .opblock-summary-control:focus {
  outline: none;
}

.swagger-ui .opblock .opblock-summary-control:focus-visible {
  outline: 2px solid var(--dc-primary);
  outline-offset: 2px;
  border-radius: 4px;
}

.swagger-ui .opblock:is(.opblock-get, .opblock-post, .opblock-put, .opblock-patch, .opblock-delete, .opblock-head, .opblock-options) .opblock-summary-method {
  min-width: 64px;
  padding: 4px 0;
  background: var(--dc-method-bg, var(--dc-get-bg));
  border-radius: 5px;
  color: var(--dc-method, var(--dc-get));
  font-family: var(--dc-mono) !important;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-shadow: none;
}

.swagger-ui .opblock :is(.opblock-summary-path, .opblock-summary-path__deprecated) {
  color: var(--dc-text-1);
  font-size: 14px;
  font-weight: 500;
}

.swagger-ui .opblock .opblock-summary-path a {
  color: var(--dc-text-1);
}

.swagger-ui .opblock .opblock-summary-description {
  color: var(--dc-text-3);
  font-size: 14px;
}

.swagger-ui .opblock .opblock-summary .view-line-link svg,
.swagger-ui .opblock .opblock-summary .arrow,
.swagger-ui .opblock .authorization__btn svg {
  fill: var(--dc-text-3);
}

.swagger-ui .opblock .opblock-summary .arrow {
  width: 16px;
  height: 16px;
}

.swagger-ui .opblock .opblock-section-header {
  min-height: 0;
  padding: 12px 20px;
  background: var(--dc-bg-subtle);
  border-top: 1px solid var(--dc-divider);
  border-bottom: 1px solid var(--dc-divider);
  box-shadow: none;
}

/* Section labels: "Parameters", "Responses", schema variant headers. */
.swagger-ui .opblock .opblock-section-header h4,
.swagger-ui .opblock .opblock-section-header > label,
.swagger-ui .responses-inner :is(h4, h5),
.api-docs-variant-label {
  color: var(--dc-text-1);
  font-size: 13px;
  font-weight: 600;
}

.swagger-ui .opblock:is(.opblock-get, .opblock-post, .opblock-put, .opblock-patch, .opblock-delete, .opblock-head, .opblock-options) .tab-header .tab-item.active h4 span:after {
  height: 2px;
  bottom: -13px;
  background: var(--dc-primary);
}

.swagger-ui :is(.opblock-description-wrapper, .opblock-external-docs-wrapper, .opblock-title_normal) {
  padding: 20px 20px 4px;
}

.swagger-ui :is(.opblock-description-wrapper, .opblock-external-docs-wrapper) p {
  color: var(--dc-text-2);
  font-size: 15px;
}

.swagger-ui .opblock-body .opblock-section:last-child {
  padding-bottom: 4px;
}

.swagger-ui .try-out {
  display: flex;
}

/* Parameters + responses */

.swagger-ui .table-container {
  padding: 16px 20px;
}

.swagger-ui .parameters-col_description {
  color: var(--dc-text-2);
  font-size: 14px;
}

.swagger-ui .parameter__name {
  color: var(--dc-text-1);
  font-size: 14px;
  font-weight: 600;
}

.swagger-ui .parameter__name.required:after {
  color: var(--dc-delete);
  font-size: 11px;
  font-weight: 500;
  top: -4px;
}

.swagger-ui .parameter__name.required span {
  color: var(--dc-delete);
}

.swagger-ui :is(.parameter__type, .prop-format, .parameter__in) {
  color: var(--dc-text-3);
  font-size: 12px;
  font-style: normal;
}

.swagger-ui .parameter__in {
  margin-top: 2px;
}

.swagger-ui .responses-inner {
  padding: 16px 20px;
}

.swagger-ui .response-col_status {
  color: var(--dc-text-1);
  font-size: 14px;
  font-weight: 600;
}

.swagger-ui :is(.response-col_description, .response-col_links) {
  color: var(--dc-text-2);
  font-size: 14px;
}

.swagger-ui .responses-table {
  table-layout: fixed;
  width: 100%;
}

.swagger-ui .responses-table .response-col_status {
  width: 72px;
}

/* The spec defines no response links; the column only ever says "No links". */
.swagger-ui .responses-table .response-col_links {
  display: none;
}

.swagger-ui .response-control-media-type__accept-message {
  color: var(--dc-post);
}

.swagger-ui .response-control-media-type--accept-controller select {
  border-color: var(--dc-border);
}

.swagger-ui .tab {
  margin: 12px 0 10px;
}

.swagger-ui .tab li {
  color: var(--dc-text-3);
  font-size: 13px;
}

.swagger-ui .tab li.active {
  color: var(--dc-text-1);
  font-weight: 600;
}

.swagger-ui .tab li:first-of-type:after {
  background: var(--dc-border);
}

/* Schemas */

.swagger-ui .model-box {
  display: inline-block;
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: auto;
  padding: 12px 14px;
  background: var(--dc-bg-subtle);
  border: 1px solid var(--dc-divider);
  border-radius: var(--dc-radius-lg);
}

.swagger-ui .model {
  color: var(--dc-text-2);
  font-size: 13px;
}

.swagger-ui .model-title {
  color: var(--dc-text-1);
  font-size: 14px;
  font-weight: 600;
}

.swagger-ui .prop-type {
  color: var(--dc-primary-strong);
}

.swagger-ui .model .property.primitive,
.swagger-ui .model span.prop-enum {
  color: var(--dc-text-3);
}

.swagger-ui .model-toggle:after {
  opacity: 0.5;
}

/* Field list (Fields tab) */

.api-docs-model-example > .tab {
  margin: 8px 0 12px;
}

.api-docs-example-only .model-example > .tab {
  display: none;
}

.api-docs-fields {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--dc-divider);
}

.api-docs-fields.is-nested {
  border-top: none;
}

.api-docs-field {
  padding: 14px 0;
  border-bottom: 1px solid var(--dc-divider);
}

.api-docs-fields.is-nested > .api-docs-field {
  padding: 12px 16px;
}

.api-docs-fields.is-nested > .api-docs-field:last-child {
  border-bottom: none;
}

.api-docs-field-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 10px;
}

.swagger-ui .api-docs-field-name {
  padding: 0;
  background: none;
  border: none;
  color: var(--dc-text-1);
  font-size: 14px;
  font-weight: 600;
}

.api-docs-field-type {
  color: var(--dc-text-3);
  font-size: 13px;
}

.api-docs-badge {
  padding: 1px 7px;
  background: var(--dc-hover);
  border-radius: 999px;
  color: var(--dc-text-3);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.5;
}

.api-docs-badge.is-required {
  background: var(--dc-delete-bg);
  color: var(--dc-delete);
}

.swagger-ui .api-docs-field-description :is(.markdown, .renderedMarkdown) p {
  margin: 4px 0 0;
  color: var(--dc-text-2);
  font-size: 14px;
  line-height: 1.6;
}

.api-docs-enum-inline {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.api-docs-enum-label {
  color: var(--dc-text-3);
  font-size: 12px;
  font-weight: 500;
}

.api-docs-enum-list {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 6px 14px;
  margin: 10px 0 0;
  padding: 10px 12px;
  background: var(--dc-bg-subtle);
  border: 1px solid var(--dc-divider);
  border-radius: var(--dc-radius);
  font-size: 13px;
}

.api-docs-enum-list dt {
  margin: 0;
}

.api-docs-enum-list dd {
  margin: 0;
  color: var(--dc-text-2);
  line-height: 1.55;
}

.swagger-ui .api-docs-children-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 10px;
  padding: 4px 10px 4px 6px;
  background: var(--dc-bg);
  border: 1px solid var(--dc-border);
  border-radius: 999px;
  color: var(--dc-text-2);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease;
}

.swagger-ui .api-docs-children-toggle:hover {
  border-color: var(--dc-primary-hover);
  color: var(--dc-primary-strong);
}

.api-docs-children-toggle svg {
  width: 12px;
  height: 12px;
  transition: transform 0.15s ease;
}

.api-docs-children-toggle.is-open svg {
  transform: rotate(90deg);
}

.api-docs-children {
  margin-top: 10px;
  border: 1px solid var(--dc-border);
  border-radius: var(--dc-radius-lg);
}

.api-docs-variants {
  display: flex;
  flex-direction: column;
}

.api-docs-variant + .api-docs-variant {
  border-top: 1px solid var(--dc-border);
}

.api-docs-variant-label {
  padding: 10px 16px;
  background: var(--dc-bg-subtle);
  border-bottom: 1px solid var(--dc-divider);
}

.api-docs-variants > .api-docs-variant:first-child > .api-docs-variant-label {
  border-radius: var(--dc-radius-lg) var(--dc-radius-lg) 0 0;
}

.api-docs-fields-empty {
  margin: 0;
  color: var(--dc-text-3);
  font-size: 13px;
}

/* Authorize dialog */

.swagger-ui .dialog-ux .backdrop-ux {
  background: var(--dc-backdrop);
}

.swagger-ui .dialog-ux .modal-ux {
  border: 1px solid var(--dc-border);
  border-radius: 12px;
  box-shadow: var(--dc-shadow-modal);
  overflow: hidden;
}

.swagger-ui .dialog-ux .modal-ux-header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--dc-divider);
}

.swagger-ui .dialog-ux .modal-ux-header h3 {
  color: var(--dc-text-1);
  font-size: 17px;
  font-weight: 600;
}

.swagger-ui .dialog-ux .modal-ux-content h4 {
  color: var(--dc-text-1);
}

.swagger-ui .dialog-ux .modal-ux-content :is(p, h6) {
  color: var(--dc-text-2);
}

.swagger-ui .auth-container input:is([type=text], [type=password]) {
  width: 100%;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
  margin: 4px 0 0;
}

.swagger-ui .auth-btn-wrapper {
  flex-direction: row-reverse;
  justify-content: flex-start;
  gap: 8px;
  padding: 16px 0 4px;
}

.swagger-ui .auth-btn-wrapper .btn {
  margin: 0;
}

/* Loading */

.swagger-ui .loading-container .loading:after {
  color: var(--dc-text-3);
  font-size: 13px;
  letter-spacing: 0.02em;
  text-transform: none;
}

.swagger-ui .loading-container .loading:before {
  border-color: var(--dc-primary-soft);
  border-top-color: var(--dc-primary);
}

/* Sidebar: swagger-only search, chevrons, mobile drawer */

.api-docs-search {
  position: sticky;
  top: -20px;
  z-index: 1;
  margin: -20px -12px 16px;
  padding: 16px 12px 12px;
  background: var(--dc-bg);
}

.api-docs-search-icon {
  position: absolute;
  top: 50%;
  left: 22px;
  width: 16px;
  height: 16px;
  margin-top: 2px;
  transform: translateY(-50%);
  color: var(--dc-text-3);
  pointer-events: none;
}

.swagger-ui .api-docs-search input.api-docs-search-input {
  width: 100%;
  max-width: none;
  margin: 0;
  box-sizing: border-box;
  padding: 8px 12px 8px 34px;
  background: var(--dc-bg-subtle);
  border: 1px solid var(--dc-border);
  border-radius: 8px;
  color: var(--dc-text-1);
  font-size: 13px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.swagger-ui .api-docs-search input.api-docs-search-input::placeholder {
  color: var(--dc-text-4);
}

.swagger-ui .api-docs-search input.api-docs-search-input:hover {
  border-color: var(--dc-primary-hover);
}

.swagger-ui .api-docs-search input.api-docs-search-input:focus {
  background: var(--dc-bg);
  border-color: var(--dc-primary);
  box-shadow: var(--dc-focus-ring);
  outline: none;
}

.api-docs-search-shortcut {
  position: absolute;
  top: 50%;
  right: 22px;
  margin-top: 2px;
  transform: translateY(-50%);
  padding: 0 6px;
  border: 1px solid var(--dc-border);
  border-radius: 4px;
  color: var(--dc-text-4);
  font-family: var(--dc-mono);
  font-size: 11px;
  line-height: 18px;
  pointer-events: none;
}

.swagger-ui .api-docs-search input.api-docs-search-input:focus + .api-docs-search-shortcut {
  display: none;
}

/* Concept entries are links; keep them styled like the endpoint buttons, not like .swagger-ui a. */
.swagger-ui a.dc-docs-sidebar-link {
  color: var(--dc-text-3);
  transition: background-color 0.15s ease, color 0.15s ease;
}

.swagger-ui a.dc-docs-sidebar-link:hover {
  color: var(--dc-text-1);
}

.swagger-ui a.dc-docs-sidebar-link.is-active {
  color: var(--dc-primary-strong);
}

.dc-docs-sidebar-link.is-sub {
  padding-left: 22px;
  font-size: 12px;
}

.api-docs-chevron {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  margin-left: -2px;
  color: var(--dc-text-3);
  transition: transform 0.15s ease;
}

.api-docs-chevron.is-collapsed {
  transform: rotate(-90deg);
}

.api-docs-toggle,
.api-docs-backdrop {
  display: none;
}

@media (max-width: 768px) {
  .swagger-ui :is(.wrapper, .scheme-container) {
    padding: 0 16px;
  }

  .swagger-ui .info .title {
    font-size: 26px;
  }

  .swagger-ui .responses-table tr.response,
  .swagger-ui .responses-table tr.response > td:not(.response-col_links) {
    display: block;
    width: auto;
  }

  .swagger-ui .responses-table thead {
    display: none;
  }

  .swagger-ui .responses-table tr.response > td.response-col_status {
    padding-bottom: 0;
    border-bottom: none;
  }

  .swagger-ui .scheme-container .schemes {
    flex-wrap: wrap;
  }

  .dc-docs-header-inner {
    padding-right: 60px;
  }

  .api-docs-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    position: fixed;
    top: 10px;
    right: 12px;
    z-index: 41;
    width: 36px;
    height: 36px;
    padding: 0;
    background: none;
    border: 1px solid var(--dc-border);
    border-radius: 8px;
    cursor: pointer;
  }

  .api-docs-toggle-bar {
    display: block;
    width: 16px;
    height: 1.5px;
    margin: 0 auto;
    background: var(--dc-text-2);
    border-radius: 1px;
    transition: transform 0.15s ease, opacity 0.15s ease;
  }

  .api-docs-toggle.is-open .api-docs-toggle-bar:nth-child(1) {
    transform: translateY(5.5px) rotate(45deg);
  }

  .api-docs-toggle.is-open .api-docs-toggle-bar:nth-child(2) {
    opacity: 0;
  }

  .api-docs-toggle.is-open .api-docs-toggle-bar:nth-child(3) {
    transform: translateY(-5.5px) rotate(-45deg);
  }

  .api-docs-sidebar {
    position: fixed;
    top: var(--dc-header-height);
    left: 0;
    z-index: 25;
    width: min(360px, 88vw);
    box-shadow: var(--dc-shadow-drawer);
    transform: translateX(-100%);
    transition: transform 0.2s ease;
  }

  .api-docs-sidebar.is-open {
    transform: translateX(0);
  }

  .api-docs-backdrop.is-open {
    display: block;
    position: fixed;
    inset: var(--dc-header-height) 0 0 0;
    z-index: 20;
    background: var(--dc-backdrop);
  }
}
