/* Swagger view theme: Swagger UI 5 (swagger-ui-dist, pinned in index.html
   and swagger.html) in the Gravity Digital Solutions palette. Every rule is
   scoped under .gds-swagger, one class above the stock sheet, so it wins
   without !important. The exceptions are marked: the font families (the
   stock sheet sets a family on many deep selectors) and the code blocks (the
   syntax highlighter writes its colours inline). The read-only rules stay in
   the page itself. */

.gds-swagger { display: block; padding: 8px 0 56px; background: var(--bg); }
.gds-swagger .swagger-ui { color: var(--text); }
.gds-swagger .swagger-ui .wrapper { max-width: 1180px; padding: 0 20px; }

/* ---------- Type: the system stack for prose, a monospace stack for code ---------- */
.gds-swagger .swagger-ui,
.gds-swagger .swagger-ui *:not(pre):not(code):not(pre *):not(code *) {
  font-family: var(--font-sans) !important; /* the stock sheet names sans-serif on deep selectors */
}
.gds-swagger .swagger-ui pre,
.gds-swagger .swagger-ui pre *,
.gds-swagger .swagger-ui code,
.gds-swagger .swagger-ui code *,
.gds-swagger .swagger-ui .opblock-summary-path,
.gds-swagger .swagger-ui .opblock-summary-path *,
.gds-swagger .swagger-ui .opblock-summary-operation-id,
.gds-swagger .swagger-ui .parameter__name,
.gds-swagger .swagger-ui .parameter__type,
.gds-swagger .swagger-ui .prop-type,
.gds-swagger .swagger-ui .prop-format,
.gds-swagger .swagger-ui .response-col_status {
  font-family: var(--font-mono) !important;
}

/* ---------- The contract header ---------- */
.gds-swagger .swagger-ui .info { margin: 40px 0 24px; }
.gds-swagger .swagger-ui .info hgroup.main { margin: 0 0 16px; }
.gds-swagger .swagger-ui .info .title {
  color: var(--text); font-size: 30px; font-weight: 750; line-height: 1.2; letter-spacing: -0.02em;
}
.gds-swagger .swagger-ui .info .title small {
  top: -3px; margin-left: 8px; padding: 3px 9px; border-radius: 999px;
  background: var(--m-other); vertical-align: middle;
}
.gds-swagger .swagger-ui .info .title small.version-stamp { background: var(--m-post); }
.gds-swagger .swagger-ui .info .title small pre { color: #FFFFFF; font-size: 11px; font-weight: 700; letter-spacing: 0.03em; }
.gds-swagger .swagger-ui .info .description { max-width: 860px; }
.gds-swagger .swagger-ui .info p,
.gds-swagger .swagger-ui .info li,
.gds-swagger .swagger-ui .info table { color: var(--text-2); font-size: 15px; line-height: 1.65; }
.gds-swagger .swagger-ui .info li { margin: 0 0 6px; }
.gds-swagger .swagger-ui .info a { color: var(--accent); }
.gds-swagger .swagger-ui .info a:hover { color: var(--text); }
.gds-swagger .swagger-ui .info .info__contact { padding: 8px 0 0; }

/* Inline code and code blocks in the rendered descriptions. */
.gds-swagger .swagger-ui .markdown code,
.gds-swagger .swagger-ui .renderedMarkdown code {
  padding: 2px 6px; border-radius: 6px;
  background: var(--accent-soft); color: var(--accent);
  font-size: 0.86em; font-weight: 600;
}
.gds-swagger .swagger-ui .markdown pre,
.gds-swagger .swagger-ui .renderedMarkdown pre {
  margin: 12px 0; padding: 14px 16px; overflow-x: auto;
  border: 1px solid var(--code-line); border-radius: 10px;
  background: var(--code-bg); color: var(--code-text);
}
.gds-swagger .swagger-ui .markdown pre > code,
.gds-swagger .swagger-ui .renderedMarkdown pre > code {
  padding: 0; background: none; color: inherit;
  font-size: 13px; font-weight: 400; line-height: 1.65; white-space: pre;
}

/* ---------- Base URLs (the read-only server list) ---------- */
.gds-swagger .swagger-ui .scheme-container {
  margin: 0 0 28px; padding: 0; background: transparent; box-shadow: none;
}
.gds-swagger .swagger-ui .scheme-container .schemes { display: block; }
.gds-swagger .ns-servers {
  padding: 16px 20px; border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--surface); color: var(--text-2); font-size: 14px; line-height: 1.5;
}
.gds-swagger .ns-servers-title {
  display: block; margin: 0 0 8px;
  color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
}
.gds-swagger .ns-servers ul { margin: 0; padding: 0; list-style: none; }
.gds-swagger .ns-servers li { margin: 0 0 6px; }
.gds-swagger .ns-servers li:last-child { margin-bottom: 0; }
.gds-swagger .ns-servers code {
  padding: 2px 7px; border: 1px solid var(--line); border-radius: 6px;
  background: var(--surface-2); color: var(--text); font-size: 13px; overflow-wrap: anywhere;
}

/* ---------- Areas (tags) ---------- */
.gds-swagger .swagger-ui .opblock-tag-section { margin: 0 0 8px; }
.gds-swagger .swagger-ui .opblock-tag {
  margin: 0 0 12px; padding: 14px 8px 14px 2px;
  border-bottom: 1px solid var(--line);
  color: var(--text); font-size: 20px; font-weight: 700; letter-spacing: -0.01em;
}
.gds-swagger .swagger-ui .opblock-tag:hover { background: transparent; }
.gds-swagger .swagger-ui .opblock-tag small { padding: 0 12px; color: var(--text-2); font-size: 14px; font-weight: 400; }
.gds-swagger .swagger-ui .opblock-tag small p { color: var(--text-2); font-size: 14px; line-height: 1.5; }
.gds-swagger .swagger-ui .opblock-tag svg,
.gds-swagger .swagger-ui .expand-operation svg,
.gds-swagger .swagger-ui .opblock-control-arrow svg { fill: var(--muted); }

/* ---------- Operations ---------- */
.gds-swagger .swagger-ui .opblock {
  margin: 0 0 10px;
  border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--surface); box-shadow: 0 1px 2px rgba(14, 18, 22, 0.04);
}
.gds-swagger .swagger-ui .opblock .opblock-summary { padding: 8px 12px 8px 10px; }
.gds-swagger .swagger-ui .opblock.is-open .opblock-summary { border-bottom: 1px solid var(--line); }
.gds-swagger .swagger-ui .opblock .opblock-summary-method {
  min-width: 66px; padding: 5px 0; border-radius: 7px;
  color: #FFFFFF; font-size: 12px; font-weight: 700; letter-spacing: 0.05em; text-shadow: none;
}
.gds-swagger .swagger-ui .opblock .opblock-summary-path,
.gds-swagger .swagger-ui .opblock .opblock-summary-path a { color: var(--text); font-size: 14px; font-weight: 600; }
.gds-swagger .swagger-ui .opblock .opblock-summary-description { color: var(--text-2); font-size: 14px; }
.gds-swagger .swagger-ui .opblock .opblock-section-header {
  min-height: 44px; padding: 8px 20px;
  border-bottom: 1px solid var(--line); background: var(--surface-2); box-shadow: none;
}
.gds-swagger .swagger-ui .opblock .opblock-section-header h4 { color: var(--text); font-size: 14px; font-weight: 650; }
.gds-swagger .swagger-ui .opblock-description-wrapper p,
.gds-swagger .swagger-ui .opblock-external-docs-wrapper p,
.gds-swagger .swagger-ui .opblock-title_normal p { color: var(--text-2); font-size: 15px; line-height: 1.65; }

/* One colour per verb: a left rule, a tint, the badge and the tab marker. */
.gds-swagger .swagger-ui .opblock.opblock-get { border-color: rgba(14, 124, 102, 0.28); background: rgba(14, 124, 102, 0.035); box-shadow: inset 3px 0 0 var(--m-get); }
.gds-swagger .swagger-ui .opblock.opblock-get .opblock-summary { border-color: rgba(14, 124, 102, 0.2); }
.gds-swagger .swagger-ui .opblock.opblock-get .opblock-summary-method { background: var(--m-get); }
.gds-swagger .swagger-ui .opblock.opblock-get .tab-header .tab-item.active h4 span::after { background: var(--m-get); }

.gds-swagger .swagger-ui .opblock.opblock-post { border-color: rgba(59, 125, 20, 0.28); background: rgba(59, 125, 20, 0.035); box-shadow: inset 3px 0 0 var(--m-post); }
.gds-swagger .swagger-ui .opblock.opblock-post .opblock-summary { border-color: rgba(59, 125, 20, 0.2); }
.gds-swagger .swagger-ui .opblock.opblock-post .opblock-summary-method { background: var(--m-post); }
.gds-swagger .swagger-ui .opblock.opblock-post .tab-header .tab-item.active h4 span::after { background: var(--m-post); }

.gds-swagger .swagger-ui .opblock.opblock-put { border-color: rgba(163, 92, 0, 0.28); background: rgba(163, 92, 0, 0.035); box-shadow: inset 3px 0 0 var(--m-put); }
.gds-swagger .swagger-ui .opblock.opblock-put .opblock-summary { border-color: rgba(163, 92, 0, 0.2); }
.gds-swagger .swagger-ui .opblock.opblock-put .opblock-summary-method { background: var(--m-put); }
.gds-swagger .swagger-ui .opblock.opblock-put .tab-header .tab-item.active h4 span::after { background: var(--m-put); }

.gds-swagger .swagger-ui .opblock.opblock-patch { border-color: rgba(11, 111, 148, 0.28); background: rgba(11, 111, 148, 0.035); box-shadow: inset 3px 0 0 var(--m-patch); }
.gds-swagger .swagger-ui .opblock.opblock-patch .opblock-summary { border-color: rgba(11, 111, 148, 0.2); }
.gds-swagger .swagger-ui .opblock.opblock-patch .opblock-summary-method { background: var(--m-patch); }
.gds-swagger .swagger-ui .opblock.opblock-patch .tab-header .tab-item.active h4 span::after { background: var(--m-patch); }

.gds-swagger .swagger-ui .opblock.opblock-delete { border-color: rgba(194, 47, 47, 0.28); background: rgba(194, 47, 47, 0.035); box-shadow: inset 3px 0 0 var(--m-delete); }
.gds-swagger .swagger-ui .opblock.opblock-delete .opblock-summary { border-color: rgba(194, 47, 47, 0.2); }
.gds-swagger .swagger-ui .opblock.opblock-delete .opblock-summary-method { background: var(--m-delete); }
.gds-swagger .swagger-ui .opblock.opblock-delete .tab-header .tab-item.active h4 span::after { background: var(--m-delete); }

.gds-swagger .swagger-ui .opblock.opblock-head,
.gds-swagger .swagger-ui .opblock.opblock-options { border-color: rgba(91, 100, 112, 0.28); background: rgba(91, 100, 112, 0.035); box-shadow: inset 3px 0 0 var(--m-other); }
.gds-swagger .swagger-ui .opblock.opblock-head .opblock-summary-method,
.gds-swagger .swagger-ui .opblock.opblock-options .opblock-summary-method { background: var(--m-other); }

.gds-swagger .swagger-ui .opblock.opblock-deprecated { opacity: 0.75; }

/* ---------- Parameters, responses, tables ---------- */
.gds-swagger .swagger-ui table thead tr th,
.gds-swagger .swagger-ui table thead tr td {
  border-bottom: 1px solid var(--line);
  color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
}
.gds-swagger .swagger-ui .parameter__name { color: var(--text); font-size: 14px; font-weight: 600; }
.gds-swagger .swagger-ui .parameter__name.required::after { color: var(--m-delete); font-size: 10px; font-weight: 600; letter-spacing: 0.04em; }
.gds-swagger .swagger-ui .parameter__name.required span { color: var(--m-delete); }
.gds-swagger .swagger-ui .parameter__type { color: var(--m-patch); font-size: 12px; }
.gds-swagger .swagger-ui .parameter__in { color: var(--muted); font-size: 12px; font-style: normal; }
.gds-swagger .swagger-ui .response-col_status { color: var(--text); font-size: 14px; font-weight: 600; }
.gds-swagger .swagger-ui .response-col_links { color: var(--muted); }
.gds-swagger .swagger-ui .responses-inner h4,
.gds-swagger .swagger-ui .responses-inner h5 { color: var(--text); font-size: 13px; font-weight: 600; }
.gds-swagger .swagger-ui .tab li { color: var(--text-2); font-size: 13px; font-weight: 600; }
.gds-swagger .swagger-ui .tab li.active,
.gds-swagger .swagger-ui .tab li button.tablinks.active { color: var(--text); }
.gds-swagger .swagger-ui .prop-type { color: var(--m-patch); }
.gds-swagger .swagger-ui .prop-format { color: var(--muted); }
.gds-swagger .swagger-ui .model-box { padding: 12px; border-radius: 10px; background: var(--surface-2); }
.gds-swagger .swagger-ui .model { color: var(--text); }
.gds-swagger .swagger-ui .model-title { color: var(--text); font-weight: 600; }
.gds-swagger .swagger-ui select {
  border: 1px solid var(--line); border-radius: 8px; box-shadow: none;
  background-color: var(--surface); color: var(--text); font-weight: 500;
}
.gds-swagger .swagger-ui .btn {
  border: 1px solid var(--line); border-radius: 8px; box-shadow: none;
  color: var(--text); font-size: 13px; font-weight: 600;
}
.gds-swagger .swagger-ui .btn:hover { border-color: var(--brand); box-shadow: none; }

/* Examples: brand dark code blocks. The highlighter writes its background
   and padding inline, hence !important on those two. */
.gds-swagger .swagger-ui .highlight-code > .microlight,
.gds-swagger .swagger-ui pre.microlight,
.gds-swagger .swagger-ui .example.microlight {
  padding: 14px 16px !important;
  border: 1px solid var(--code-line); border-radius: 10px;
  background: var(--code-bg) !important;
  font-size: 12.5px; line-height: 1.6;
}

/* ---------- Schemas ---------- */
.gds-swagger .swagger-ui section.models {
  margin: 36px 0 0;
  border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface);
}
.gds-swagger .swagger-ui section.models h4 { padding: 14px 20px; color: var(--text); font-size: 18px; font-weight: 700; }
.gds-swagger .swagger-ui section.models h4 svg { fill: var(--muted); }
.gds-swagger .swagger-ui section.models.is-open h4 { margin: 0 0 12px; border-bottom: 1px solid var(--line); }
.gds-swagger .swagger-ui section.models .model-container {
  margin: 0 20px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2);
}
.gds-swagger .swagger-ui section.models .model-container:hover { background: var(--surface-2); }
.gds-swagger .swagger-ui section.models .model-box { background: transparent; }

/* ---------- Phone width ---------- */
@media (max-width: 640px) {
  .gds-swagger .swagger-ui .wrapper { padding: 0 16px; }
  .gds-swagger .swagger-ui .info { margin: 28px 0 20px; }
  .gds-swagger .swagger-ui .info .title { font-size: 24px; }
  .gds-swagger .swagger-ui .opblock-tag { font-size: 18px; }
  .gds-swagger .swagger-ui .opblock-tag small { display: none; }
  .gds-swagger .swagger-ui .opblock-body pre,
  .gds-swagger .swagger-ui .table-container,
  .gds-swagger .swagger-ui .model-box,
  .gds-swagger .swagger-ui section.models .model-container { max-width: 100%; overflow-x: auto; }
  .gds-swagger .swagger-ui section.models .model-container { margin: 0 12px 10px; }
}
