/* ==========================================================================
   e-KYC API Reference — console theme
   --------------------------------------------------------------------------
   A clearance-desk reading of Swagger UI: a manifest rail on the left, the
   reference set as a document (rules and eyebrows, not stacked cards), paths
   and verbs in monospace, and one harbour-teal accent carried from the mark.
   Loaded after /swagger-ui/swagger-ui.css so these rules win.
   ========================================================================== */

/* ---------- Tokens ---------- */

:root {
  color-scheme: light;

  --paper:      #eef1f0;
  --surface:    #ffffff;
  --surface-2:  #f5f8f7;
  --surface-3:  #e9eeed;
  --rule:       #dbe2e1;
  --rule-firm:  #c2ccca;

  --ink:        #0d1f24;
  --ink-2:      #47585d;
  --ink-3:      #566a6f;   /* 4.5:1 on --paper: these labels are small caps */

  --accent:      #0b6e75;
  --accent-deep: #075258;
  --accent-wash: rgba(11, 110, 117, .10);
  --accent-on:   #ffffff;

  --get:     #1f6fb2;
  --post:    #2c7a58;
  --put:     #9d6410;
  --patch:   #63519f;
  --delete:  #b04338;
  --plain:   #566a70;

  --slab:      #0c1a20;   /* code surface, both themes */
  --slab-ink:  #dbe7ea;

  --ring: 0 0 0 3px var(--accent-wash);

  --sans: 'IBM Plex Sans', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, 'Cascadia Mono', Consolas, monospace;

  --rail-h: 56px;
  --shell:  1560px;
}

html[data-theme="dark"] {
  color-scheme: dark;

  --paper:      #07131a;
  --surface:    #0d1c24;
  --surface-2:  #12242d;
  --surface-3:  #18303a;
  --rule:       #1c313a;
  --rule-firm:  #2a444e;

  --ink:        #dfeaec;
  --ink-2:      #9fb3b8;
  --ink-3:      #7c9198;

  --accent:      #45cbd3;
  --accent-deep: #7fe0e5;
  --accent-wash: rgba(69, 203, 211, .14);
  --accent-on:   #04262a;

  --get:     #63aee8;
  --post:    #4fbe83;
  --put:     #d9a441;
  --patch:   #a08cf0;
  --delete:  #e3776a;
  --plain:   #8aa0a7;

  --slab:      #061219;
  --slab-ink:  #d7e5e9;
}

/* ---------- Base ---------- */

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html {
  overflow-y: scroll;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

::selection { background: var(--accent-wash); }

:focus-visible,
.swagger-ui :focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 3px;
}

.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.skip-link {
  position: absolute;
  left: 12px;
  top: -60px;
  z-index: 200;
  padding: 10px 16px;
  background: var(--accent);
  color: var(--accent-on);
  font-size: 13px;
  font-weight: 600;
  border-radius: 0 0 4px 4px;
  transition: top .16s ease;
}
.skip-link:focus { top: 0; }

* { scrollbar-color: var(--rule-firm) transparent; scrollbar-width: thin; }
*::-webkit-scrollbar { width: 11px; height: 11px; }
*::-webkit-scrollbar-thumb {
  background: var(--rule-firm);
  border: 3px solid transparent;
  background-clip: content-box;
  border-radius: 20px;
}
*::-webkit-scrollbar-thumb:hover { background: var(--ink-3); background-clip: content-box; }

/* Shared type devices */

.eyebrow {
  margin: 0 0 10px;
  font-family: var(--mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ink-3);
}

/* ---------- Buttons ---------- */

.btn,
.swagger-ui .btn.console-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid var(--rule-firm);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink-2);
  font-family: var(--mono);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: .04em;
  text-decoration: none;
  cursor: pointer;
  transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.btn:hover { color: var(--accent); border-color: var(--accent); }
.btn svg { width: 14px; height: 14px; fill: currentColor; }

.btn--quiet { background: transparent; border-color: transparent; }
.btn--quiet:hover { border-color: var(--rule-firm); background: var(--surface); }

.btn--icon { width: 32px; padding: 0; }
.btn--icon svg { width: 16px; height: 16px; }

html[data-theme="dark"] .icon-sun  { display: block; }
html[data-theme="dark"] .icon-moon { display: none; }
html:not([data-theme="dark"]) .icon-sun  { display: none; }

/* ---------- Top rail ---------- */

.rail {
  position: sticky;
  top: 0;
  z-index: 90;
  display: flex;
  align-items: center;
  gap: 14px;
  height: var(--rail-h);
  padding: 0 22px;
  background: var(--surface);
  border-bottom: 1px solid var(--rule);
}

.rail__brand {
  display: flex;
  align-items: center;
  gap: 11px;
  text-decoration: none;
  color: inherit;
}
.rail__logo {
  height: 30px;
  width: auto;
  border-radius: 3px;
  background: #fff;
  padding: 2px 3px;
}
.rail__names { display: flex; flex-direction: column; line-height: 1.2; }
.rail__mark {
  font-family: var(--mono);
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.rail__owner { font-size: 11px; color: var(--ink-3); }

.rail__stamp {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .06em;
  color: var(--accent);
  border: 1px solid var(--accent);
  border-radius: 3px;
  padding: 2px 7px;
}

.rail__gap { flex: 1 1 auto; }
.rail__nav { display: flex; align-items: center; gap: 6px; }

/* Where Execute actually sends requests — worth knowing before you press it. */
.rail__where {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;                /* the URL ellipsizes rather than widening the rail */
  max-width: 42vw;
  padding: 4px 10px 4px 8px;
  border: 1px solid var(--rule);
  border-radius: 4px;
  background: var(--surface-2);
}
.rail__where-label {
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-3);
  white-space: nowrap;
}
.rail__where-value {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.rail__where-value::before {
  content: "";
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--post);
}
.rail__where[data-env="remote"] .rail__where-value::before { background: var(--put); }

.rail__where-value select {
  min-width: 0;
  max-width: 100%;
  padding: 0 16px 0 0;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: var(--ink);
  font-family: var(--mono);
  font-size: 11.5px;
  text-overflow: ellipsis;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.rail__where-value select:focus { outline: none; }
.rail__where-value select:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.rail__where-value select option { background: var(--surface); color: var(--ink); }
.rail__where-value > svg {
  position: absolute;
  right: 0;
  width: 14px;
  height: 14px;
  fill: var(--ink-3);
  pointer-events: none;
}
.rail__where:hover { border-color: var(--rule-firm); }

/* ---------- Layout ---------- */

.layout {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 22px;
  display: grid;
  grid-template-columns: 268px minmax(0, 1fr);
  gap: 34px;
  align-items: start;
}

/* ---------- Manifest rail ---------- */

.manifest {
  position: sticky;
  top: var(--rail-h);
  max-height: calc(100vh - var(--rail-h));
  display: flex;
  flex-direction: column;
  padding: 26px 0 20px;
}

.manifest__head { flex: 0 0 auto; }

.search {
  position: relative;
  display: flex;
  align-items: center;
}
.search svg {
  position: absolute;
  left: 10px;
  width: 15px;
  height: 15px;
  fill: var(--ink-3);
  pointer-events: none;
}
.search input {
  width: 100%;
  height: 36px;
  padding: 0 34px 0 32px;
  border: 1px solid var(--rule-firm);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 13px;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.search input::placeholder { color: var(--ink-3); }
.search input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: var(--ring);
}
.search input::-webkit-search-cancel-button { filter: grayscale(1) opacity(.6); }
.search kbd {
  position: absolute;
  right: 9px;
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--ink-3);
  border: 1px solid var(--rule);
  border-radius: 3px;
  padding: 1px 5px;
  pointer-events: none;
}
.search input:focus + kbd { opacity: 0; }

.manifest__list {
  flex: 1 1 auto;
  min-width: 0;               /* lets the rail shrink instead of widening the page */
  max-width: 100%;
  overflow-y: auto;
  margin-top: 16px;
  padding-right: 6px;
}

.group {
  display: block;
  width: 100%;
  text-align: left;
  padding: 8px 10px 9px 12px;
  border: 0;
  border-left: 2px solid transparent;
  border-radius: 0 4px 4px 0;
  background: none;
  color: var(--ink-2);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
  transition: color .18s ease, background .18s ease, border-color .18s ease;
}
.group:hover { color: var(--ink); background: var(--surface); }
.group.is-active {
  color: var(--ink);
  background: var(--surface);
  border-left-color: var(--accent);
  font-weight: 600;
}

.group__row { display: flex; align-items: center; gap: 8px; }
.group__name { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.group__count {
  min-width: 16px;
  text-align: right;
  font-family: var(--mono);
  font-size: 11px;
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}

/* Verb mix: each group's share of GET/POST/PUT/PATCH/DELETE, at a glance. */
.group__mix {
  flex: 0 0 auto;
  display: flex;
  gap: 1px;
  width: 30px;
  height: 4px;
  border-radius: 2px;
  overflow: hidden;
}
.group__mix i { display: block; height: 100%; opacity: .75; }
.group.is-active .group__mix i { opacity: 1; }
.mix-get    { background: var(--get); }
.mix-post   { background: var(--post); }
.mix-put    { background: var(--put); }
.mix-patch  { background: var(--patch); }
.mix-delete { background: var(--delete); }
.mix-plain  { background: var(--plain); }

.manifest__empty {
  margin: 14px 12px;
  font-size: 12.5px;
  color: var(--ink-3);
}

/* ---------- Start here ---------- */

.start {
  margin: 0 0 26px;
  padding: 20px 22px 6px;
  border: 1px solid var(--rule);
  border-left: 3px solid var(--accent);
  border-radius: 4px;
  background: var(--surface);
}
.start__head { display: flex; align-items: center; gap: 12px; }
.start__head .eyebrow { margin: 0 0 4px; }
.start__toggle { margin-left: auto; margin-bottom: 4px; }

.start__steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 4px 30px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  counter-reset: step;
}
.start__steps li {
  position: relative;
  padding: 0 0 18px 30px;
  counter-increment: step;
}
.start__steps li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 1px;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--accent-wash);
  color: var(--accent);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
}
.start__steps h2 {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.005em;
}
.start__steps p {
  margin: 0;
  font-size: 13.5px;
  color: var(--ink-2);
}
.start__steps code {
  font-family: var(--mono);
  font-size: 12px;
  background: var(--surface-3);
  border-radius: 3px;
  padding: 1px 5px;
  color: var(--ink);
  word-break: break-word;
}

.doc-empty {
  margin: 0 0 26px;
  padding: 22px;
  border: 1px dashed var(--rule-firm);
  border-radius: 4px;
  color: var(--ink-2);
  font-size: 14px;
}

/* ---------- Masthead ---------- */

.doc { min-width: 0; padding: 30px 0 60px; }

.masthead {
  padding: 0 0 26px;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 26px;
}
.masthead__title {
  margin: 0;
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1.08;
}
.masthead__lede {
  margin: 14px 0 0;
  max-width: 68ch;
  font-size: 15.5px;
  color: var(--ink-2);
}
.masthead__lede code {
  font-family: var(--mono);
  font-size: 13px;
  background: var(--surface-3);
  border-radius: 3px;
  padding: 1px 5px;
}

.ledger {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 26px 0 0;
  border: 1px solid var(--rule);
  border-radius: 4px;
  background: var(--surface);
  overflow: hidden;
}
.ledger__cell {
  flex: 1 1 120px;
  padding: 12px 16px;
  border-right: 1px solid var(--rule);
}
.ledger__cell:last-child { border-right: 0; }
.ledger dt {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.ledger dd {
  margin: 3px 0 0;
  font-family: var(--mono);
  font-size: 22px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.01em;
}
.ledger__cell:first-child dd { color: var(--accent); }

.masthead__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}
.masthead__contact {
  margin-left: auto;
  font-size: 12.5px;
  color: var(--ink-3);
}
.masthead__contact a { color: var(--ink-2); text-decoration: none; border-bottom: 1px solid var(--rule-firm); }
.masthead__contact a:hover { color: var(--accent); border-color: var(--accent); }

/* ---------- Footer / back to top ---------- */

.foot {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 18px 22px 40px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  align-items: center;
  border-top: 1px solid var(--rule);
  color: var(--ink-3);
  font-size: 12.5px;
}
.foot__gap { flex: 1 1 auto; }
.foot a { color: var(--ink-2); text-decoration: none; }
.foot a:hover { color: var(--accent); }

.to-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 80;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--rule-firm);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink-2);
  cursor: pointer;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease, color .18s ease, border-color .18s ease;
}
.to-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.to-top:hover { color: var(--accent); border-color: var(--accent); }
.to-top svg { width: 17px; height: 17px; fill: currentColor; }

/* ==========================================================================
   Swagger UI
   ========================================================================== */

.swagger-ui { color: var(--ink); font-family: var(--sans); }
.swagger-ui .wrapper { max-width: none; padding: 0; }
.swagger-ui .topbar,
.swagger-ui .information-container,
.swagger-ui .filter-container,
.swagger-ui .download-url-wrapper { display: none; }

.swagger-ui a { color: var(--accent); }
.swagger-ui a:hover { color: var(--accent-deep); }
.swagger-ui svg:not(:root) { fill: currentColor; }

/* Text colours across the widget */
.swagger-ui,
.swagger-ui .opblock-tag,
.swagger-ui .opblock .opblock-section-header h4,
.swagger-ui .opblock .opblock-section-header label,
.swagger-ui .opblock-title,
.swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5,
.swagger-ui .response-col_status,
.swagger-ui .response-col_links,
.swagger-ui .parameter__name,
.swagger-ui .parameter__type,
.swagger-ui table thead tr td,
.swagger-ui table thead tr th,
.swagger-ui .tab li,
.swagger-ui .tab li button.tablinks,
.swagger-ui label,
.swagger-ui .model-title,
.swagger-ui .model,
.swagger-ui section.models h4,
.swagger-ui section.models h5,
.swagger-ui .servers > label,
.swagger-ui .scopes h2,
.swagger-ui .dialog-ux .modal-ux-header h3,
.swagger-ui .dialog-ux .modal-ux-content h4,
.swagger-ui .dialog-ux .modal-ux-content p,
.swagger-ui .errors-wrapper hgroup h4 { color: var(--ink); }

.swagger-ui .markdown p,
.swagger-ui .renderedMarkdown p,
.swagger-ui .opblock-description-wrapper p,
.swagger-ui .opblock-external-docs-wrapper p,
.swagger-ui .opblock-title_normal p,
.swagger-ui .parameters-col_description,
.swagger-ui .response-col_description__inner div.renderedMarkdown p { color: var(--ink-2); }

.swagger-ui .parameter__in,
.swagger-ui .parameter__extension,
.swagger-ui .prop-format,
.swagger-ui .model-hint { color: var(--ink-3); }

.swagger-ui .parameter__name,
.swagger-ui .parameter__type,
.swagger-ui .parameter__in,
.swagger-ui .prop-type,
.swagger-ui .prop-format,
.swagger-ui .response-col_status,
.swagger-ui .model,
.swagger-ui .model-title,
.swagger-ui .opblock-summary-path,
.swagger-ui .opblock-summary-path__deprecated { font-family: var(--mono); }

/* ---------- Servers strip ---------- */

.swagger-ui .scheme-container {
  background: var(--surface);
  border: 1px solid var(--rule);
  border-radius: 4px;
  box-shadow: none;
  margin: 0 0 26px;
  padding: 14px 16px;
}
.swagger-ui .scheme-container .schemes { align-items: flex-end; gap: 12px; }
.swagger-ui .scheme-container .schemes > label,
.swagger-ui .servers-title {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.swagger-ui .servers > label select { min-width: 300px; }

/* ---------- Group sections ---------- */

.swagger-ui .opblock-tag-section { margin: 0 0 34px; }

.swagger-ui .opblock-tag {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  padding: 0 0 10px;
  border: 0;
  border-bottom: 1px solid var(--rule-firm);
  border-radius: 0;
  background: none;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 19px;
  font-weight: 600;
  letter-spacing: -.015em;
  scroll-margin-top: calc(var(--rail-h) + 16px);
  transition: color .18s ease, border-color .18s ease;
}
.swagger-ui .opblock-tag:hover { background: none; color: var(--accent); border-bottom-color: var(--accent); }
.swagger-ui .opblock-tag small {
  padding: 0;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 400;
  color: var(--ink-3);
}
.swagger-ui .opblock-tag .expand-operation svg,
.swagger-ui .opblock-tag button svg { fill: var(--ink-3); }

/* ---------- Operations ---------- */

.swagger-ui .opblock,
.swagger-ui .opblock.opblock-get,
.swagger-ui .opblock.opblock-post,
.swagger-ui .opblock.opblock-put,
.swagger-ui .opblock.opblock-patch,
.swagger-ui .opblock.opblock-delete,
.swagger-ui .opblock.opblock-head,
.swagger-ui .opblock.opblock-options,
.swagger-ui .opblock.opblock-deprecated {
  margin: 0 0 8px;
  border: 1px solid var(--rule) !important;
  border-radius: 4px;
  background: var(--surface);
  box-shadow: none;
  transition: border-color .18s ease, background .18s ease;
}
.swagger-ui .opblock:hover { border-color: var(--rule-firm) !important; }
.swagger-ui .opblock.is-open { border-color: var(--rule-firm) !important; }
.swagger-ui .opblock.opblock-deprecated { opacity: .68; }

.swagger-ui .opblock .opblock-summary {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 9px 14px;
  border: 0;
}
.swagger-ui .opblock.is-open .opblock-summary { border-bottom: 1px solid var(--rule); }

/* Verb stamp */
.swagger-ui .opblock .opblock-summary-method {
  min-width: 74px;
  padding: 6px 0;
  border-radius: 3px;
  background: var(--plain);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-shadow: none;
  box-shadow: none;
}
.swagger-ui .opblock.opblock-get    .opblock-summary-method { background: var(--get); }
.swagger-ui .opblock.opblock-post   .opblock-summary-method { background: var(--post); }
.swagger-ui .opblock.opblock-put    .opblock-summary-method { background: var(--put); }
.swagger-ui .opblock.opblock-patch  .opblock-summary-method { background: var(--patch); }
.swagger-ui .opblock.opblock-delete .opblock-summary-method { background: var(--delete); }
.swagger-ui .opblock.opblock-deprecated .opblock-summary-method { background: var(--ink-3); }

.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-path__deprecated {
  max-width: none;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--ink);
  word-break: break-all;
}
.swagger-ui .opblock .opblock-summary-path a.nostyle span { color: var(--ink); }
.swagger-ui .opblock .opblock-summary-description {
  font-family: var(--sans);
  font-size: 13px;
  color: var(--ink-2);
}

/* Dark verbs are light-on-dark, so the stamp label flips to the deep ink. */
html[data-theme="dark"] .swagger-ui .opblock .opblock-summary-method { color: var(--accent-on); }

/* Copy path */
.swagger-ui .copy-path {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: none;
  color: var(--ink-3);
  cursor: pointer;
  opacity: 0;
  transition: opacity .15s ease, color .15s ease, border-color .15s ease;
}
.swagger-ui .copy-path svg { width: 14px; height: 14px; fill: currentColor; }
.swagger-ui .opblock-summary:hover .copy-path,
.swagger-ui .copy-path:focus-visible { opacity: 1; }
.swagger-ui .copy-path:hover { color: var(--accent); border-color: var(--rule-firm); }
.swagger-ui .copy-path.is-copied { opacity: 1; color: var(--post); border-color: var(--post); }
.swagger-ui .copy-path.is-copied::after {
  content: "Copied";
  position: absolute;
  margin-left: 66px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--post);
}
.swagger-ui .opblock .opblock-summary-control:focus { outline: none; }
.swagger-ui .opblock .opblock-summary-control:focus-visible { outline: 2px solid var(--accent); }

/* Open operation body */
.swagger-ui .opblock .opblock-body { background: var(--surface); }
.swagger-ui .opblock .opblock-section-header,
.swagger-ui .opblock.opblock-get .opblock-section-header,
.swagger-ui .opblock.opblock-post .opblock-section-header,
.swagger-ui .opblock.opblock-put .opblock-section-header,
.swagger-ui .opblock.opblock-patch .opblock-section-header,
.swagger-ui .opblock.opblock-delete .opblock-section-header,
.swagger-ui .opblock.opblock-deprecated .opblock-section-header {
  min-height: 42px;
  padding: 8px 16px;
  background: var(--surface-2);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  box-shadow: none;
}
.swagger-ui .opblock .opblock-section-header h4,
.swagger-ui .opblock .opblock-section-header > label {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.swagger-ui .opblock-description-wrapper,
.swagger-ui .opblock-external-docs-wrapper,
.swagger-ui .opblock-title_normal { padding: 16px; }

/* ---------- Tables ---------- */

.swagger-ui table thead tr td,
.swagger-ui table thead tr th {
  padding: 8px 0;
  border-bottom: 1px solid var(--rule);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.swagger-ui .parameters-col_description input[type=text] { max-width: 420px; }
.swagger-ui table.model tr.property-row td { color: var(--ink-2); }
.swagger-ui table.model tr.property-row .star,
.swagger-ui .parameter__name.required span,
.swagger-ui .parameter__name.required::after { color: var(--delete); }
.swagger-ui .response-col_status { font-weight: 600; }
.swagger-ui .responses-table .response { border-bottom: 1px solid var(--rule); }

/* ---------- Controls ---------- */

.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],
.swagger-ui input[type=number],
.swagger-ui textarea,
.swagger-ui select {
  border: 1px solid var(--rule-firm);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink);
  box-shadow: none;
  font-family: var(--sans);
  font-size: 13px;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.swagger-ui textarea { font-family: var(--mono); font-size: 12.5px; line-height: 1.6; }
.swagger-ui input:focus,
.swagger-ui textarea:focus,
.swagger-ui select:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: var(--ring);
}
.swagger-ui input::placeholder,
.swagger-ui textarea::placeholder { color: var(--ink-3); }
.swagger-ui select {
  cursor: pointer;
  padding-right: 30px;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23667a7f'><path d='M7 10l5 5 5-5z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 7px center;
  background-size: 17px 17px;
}
.swagger-ui textarea.curl { background: var(--slab); color: var(--slab-ink); }

.swagger-ui .btn {
  border: 1px solid var(--rule-firm);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink-2);
  box-shadow: none;
  font-family: var(--mono);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.swagger-ui .btn:hover { color: var(--accent); border-color: var(--accent); background: var(--surface); }

.swagger-ui .btn.execute {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--accent-on);
}
.swagger-ui .btn.execute:hover { background: var(--accent-deep); border-color: var(--accent-deep); color: var(--accent-on); }
.swagger-ui .execute-wrapper { padding: 18px 16px; text-align: left; }
.swagger-ui .execute-wrapper .btn { width: auto; min-width: 190px; padding: 11px 26px; }

.swagger-ui .btn.cancel { border-color: var(--delete); color: var(--delete); background: transparent; }
.swagger-ui .btn.cancel:hover { border-color: var(--delete); color: var(--delete); background: rgba(176, 67, 56, .1); }

.swagger-ui .btn.authorize { border-color: var(--post); color: var(--post); background: transparent; }
.swagger-ui .btn.authorize:hover { border-color: var(--post); color: var(--post); background: rgba(44, 122, 88, .1); }
.swagger-ui .btn.authorize svg { fill: currentColor; }
.swagger-ui .btn.authorize.modal-btn.auth { background: var(--accent); border-color: var(--accent); color: var(--accent-on); }

.swagger-ui .btn-group { display: flex; gap: 8px; padding: 14px 16px; }
.swagger-ui .btn-group .btn { flex: 1; padding: 10px 18px; }
.swagger-ui .try-out__btn { border-color: var(--accent); color: var(--accent); background: transparent; }
.swagger-ui .try-out__btn:hover { background: var(--accent-wash); }
.swagger-ui .copy-to-clipboard {
  background: var(--surface-3);
  border: 1px solid var(--rule);
  border-radius: 3px;
}
.swagger-ui .copy-to-clipboard button { background: transparent; }

/* ---------- Tabs, code, responses ---------- */

.swagger-ui .tab li {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-3);
  padding: 0 6px;
}
.swagger-ui .tab li:first-of-type::after { content: none; }
.swagger-ui .tab li button.tablinks { color: var(--ink-3); }
.swagger-ui .tab li.active button.tablinks { color: var(--ink); font-weight: 600; }

.swagger-ui .highlight-code > .microlight,
.swagger-ui .microlight,
.swagger-ui .model-example pre,
.swagger-ui .responses-inner pre,
.swagger-ui .request-url pre {
  background: var(--slab) !important;
  color: var(--slab-ink);
  border-radius: 4px;
  font-family: var(--mono) !important;
  font-size: 12.5px !important;
  line-height: 1.65;
}
.swagger-ui .responses-inner { padding: 16px; }
.swagger-ui .response-control-media-type--accept-controller select { border-color: var(--post); }
.swagger-ui .response-control-media-type__accept-message { color: var(--post); font-family: var(--mono); font-size: 11px; }
.swagger-ui .live-responses-table .response-col_status { color: var(--ink); }
.swagger-ui .curl-command .copy-to-clipboard { top: 8px; right: 10px; }

/* ---------- Models ---------- */

.swagger-ui section.models {
  border: 1px solid var(--rule);
  border-radius: 4px;
  background: var(--surface);
  margin: 34px 0 0;
}
.swagger-ui section.models.is-open h4,
.swagger-ui section.models h4 {
  margin: 0;
  padding: 12px 16px;
  border-bottom: 1px solid var(--rule);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.swagger-ui section.models .model-container {
  margin: 0 16px 12px;
  border-radius: 4px;
  background: var(--surface-2);
  transition: background .18s ease;
}
.swagger-ui section.models .model-container:hover { background: var(--surface-3); }
.swagger-ui .model-box { background: transparent; }
.swagger-ui .model-toggle::after {
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23667a7f'><path d='M7 10l5 5 5-5z'/></svg>") center/contain no-repeat;
}
.swagger-ui .model .property.primitive { color: var(--ink-3); }
.swagger-ui .model-hint { background: var(--slab); color: var(--slab-ink); }
.swagger-ui .prop-type { color: var(--patch); }

/* ---------- Auth dialog & errors ---------- */

.swagger-ui .dialog-ux .modal-ux {
  background: var(--surface);
  border: 1px solid var(--rule-firm);
  border-radius: 6px;
  box-shadow: 0 18px 50px rgba(4, 14, 20, .28);
}
.swagger-ui .dialog-ux .backdrop-ux { background: rgba(5, 14, 19, .55); }
.swagger-ui .dialog-ux .modal-ux-header { border-bottom: 1px solid var(--rule); }
.swagger-ui .dialog-ux .modal-ux-header h3 { font-size: 16px; font-weight: 600; }
.swagger-ui .auth-container { border-bottom: 1px solid var(--rule); }
.swagger-ui .scopes h2 { font-size: 13px; }

.swagger-ui .errors-wrapper {
  background: rgba(176, 67, 56, .08);
  border: 1px solid var(--delete);
  border-radius: 4px;
}
.swagger-ui .errors-wrapper .errors small { color: var(--ink-3); }
.swagger-ui .loading-container .loading::after { color: var(--ink-3); font-family: var(--mono); font-size: 11px; letter-spacing: .14em; }
.swagger-ui .loading-container .loading::before { border-color: var(--accent) rgba(0, 0, 0, 0) var(--accent) var(--accent); }
.swagger-ui .markdown code,
.swagger-ui .renderedMarkdown code {
  background: var(--surface-3);
  color: var(--accent);
  border-radius: 3px;
  font-family: var(--mono);
  font-size: 12.5px;
}
.swagger-ui .info__extdocs { color: var(--ink-2); }

/* ---------- Responsive ---------- */

@media (max-width: 1080px) {
  .layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .manifest {
    position: static;
    max-height: none;
    padding: 22px 0 0;
  }
  .manifest__list {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    margin-top: 12px;
    padding: 0 0 8px;
  }
  .group {
    flex: 0 0 auto;
    max-width: 210px;
    border-left: 0;
    border-bottom: 2px solid transparent;
    border-radius: 4px 4px 0 0;
    background: var(--surface);
  }
  .group.is-active { border-left-color: transparent; border-bottom-color: var(--accent); }
  .doc { padding-top: 20px; }
}

@media (max-width: 1080px) {
  .rail__brand { min-width: 0; }
  .rail__where-label { display: none; }
  .rail__where { max-width: 34vw; }
}

@media (max-width: 720px) {
  .rail { padding: 0 14px; gap: 10px; }
  .rail__owner { display: none; }
  /* The Servers select sits in the document at this width, so the rail drops it. */
  .rail__where { display: none; }
  .rail__nav .btn span { display: none; }
  .rail__nav .btn { width: 32px; padding: 0; }
  .layout, .foot { padding-left: 14px; padding-right: 14px; }
  .ledger__cell { flex-basis: 50%; border-bottom: 1px solid var(--rule); }
  .ledger__cell:nth-child(2n) { border-right: 0; }
  .swagger-ui .opblock .opblock-summary { flex-wrap: wrap; gap: 10px; }
  .swagger-ui .execute-wrapper .btn { width: 100%; }
  .search kbd { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---------- Print: hand the reference to someone as a PDF ---------- */

@media print {
  .rail, .manifest, .to-top, .foot, .start__toggle, .swagger-ui .copy-path,
  .swagger-ui .scheme-container, .swagger-ui .try-out, .swagger-ui .execute-wrapper { display: none !important; }

  body { background: #fff; color: #000; font-size: 11pt; }
  .layout { display: block; max-width: none; padding: 0; }
  .doc { padding: 0; }
  .masthead__title { font-size: 24pt; }

  .swagger-ui .opblock,
  .swagger-ui .opblock-tag-section { break-inside: avoid; }
  .swagger-ui .opblock { border: 1px solid #999 !important; }
  .swagger-ui .opblock .opblock-summary-method { color: #fff !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .swagger-ui .microlight, .swagger-ui .highlight-code > .microlight {
    background: #f2f2f2 !important;
    color: #000;
    border: 1px solid #ddd;
  }
}