/* ── page shell ─────────────────────────────────────────────────── */
/* hero */
.api-hero { position: relative; max-width: 1180px; margin: 0 auto; padding: clamp(48px,7vw,92px) var(--pad) 0; }
.api-hero > *:not(.hero-art) { position: relative; z-index: 1; }
.api-hero .hero-art { z-index: 0; margin-top: clamp(-190px,-12vw,-70px); }
.api-hero h1 { font-size: clamp(34px,5.2vw,54px); font-weight: 600; letter-spacing: -.03em; line-height: 1.03; margin: 0 0 16px; }
.api-hero .lede { color: var(--mute); font-size: 16px; line-height: 1.72; max-width: 680px; margin: 0 0 26px; }
.api-hero .lede a { color: var(--ember); text-decoration: none; border-bottom: 1px solid rgba(59,130,246,.3); }
.api-hero .pill-row { display: flex; gap: 8px; flex-wrap: wrap; margin: 0; }
.api-hero .chip { display: inline-flex; align-items: center; font-family: var(--mono); font-size: 11.5px; letter-spacing: .03em; color: var(--mute); background: var(--panel); border: 1px solid var(--line); border-radius: 999px; padding: 7px 14px; transition: color .18s, border-color .18s; }
.api-hero .chip:hover { color: var(--ink); border-color: rgba(59,130,246,.4); }
.api-hero .chip i { color: var(--ember); margin-right: 7px; }

/* at-a-glance stat strip */
.api-stats { max-width: 1180px; margin: 34px auto 0; padding: 0 var(--pad); }
.api-stats-inner { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid var(--line-soft); border-radius: 16px; background: linear-gradient(180deg, var(--panel-2), var(--panel)); overflow: hidden; }
.api-stat { padding: 20px 24px; border-right: 1px solid var(--line-soft); }
.api-stat:last-child { border-right: none; }
.api-stat .n { font-size: 27px; font-weight: 600; letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; line-height: 1; }
.api-stat .n small { font-size: 15px; font-weight: 600; color: var(--ember); }
.api-stat .l { display: block; margin-top: 9px; font-family: var(--mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--dim); }
@media (max-width: 720px) { .api-stats-inner { grid-template-columns: repeat(2,1fr); } .api-stat:nth-child(2){ border-right: none; } .api-stat:nth-child(1),.api-stat:nth-child(2){ border-bottom: 1px solid var(--line-soft); } }

/* quickstart: steps + terminal */
.qs { max-width: 1180px; margin: 0 auto; padding: 0 var(--pad); }
.qs-head { font-family: var(--mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--dim); margin: clamp(36px,5vw,52px) 0 16px; }
.qs-layout { display: grid; grid-template-columns: 1fr 1.12fr; gap: 26px; align-items: start; }
@media (max-width: 880px) { .qs-layout { grid-template-columns: 1fr; gap: 18px; } }

.qs-steps { display: flex; flex-direction: column; gap: 8px; }
.qs-row { display: flex; gap: 14px; padding: 16px 18px; border: 1px solid var(--line-soft); border-radius: 14px; background: var(--panel); transition: border-color .2s; }
.qs-row:hover { border-color: rgba(59,130,246,.3); }
.qs-row.note { background: linear-gradient(180deg, rgba(59,130,246,.05), transparent); }
.qs-badge { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; font-family: var(--mono); font-size: 12.5px; font-weight: 600; color: var(--ember); background: rgba(59,130,246,.1); border: 1px solid rgba(59,130,246,.3); }
.qs-badge i { font-size: 12px; }
.qs-row.note .qs-badge { color: var(--mute); background: rgba(255,255,255,.04); border-color: var(--line); }
.qs-row h4 { font-size: 14px; font-weight: 600; color: var(--ink); margin: 3px 0 5px; }
.qs-row p { color: var(--mute); font-size: 12.5px; line-height: 1.62; margin: 0; }
.qs-row code { background: rgba(59,130,246,.1); border: 1px solid rgba(59,130,246,.22); color: #a8cbfe; border-radius: 5px; padding: 1px 6px; font-family: var(--mono); font-size: 11px; white-space: nowrap; }

.qs-term { border: 1px solid var(--line-soft); border-radius: 16px; background: var(--void); overflow: hidden; position: sticky; top: 20px; }
.qs-term-bar { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--line-soft); background: rgba(255,255,255,.02); }
.qs-term-bar .dot { width: 10px; height: 10px; border-radius: 50%; background: var(--line); }
.qs-term-bar .label { margin-left: 8px; font-family: var(--mono); font-size: 11px; letter-spacing: .04em; color: var(--dim); }
.qs-term pre { margin: 0; padding: 18px 20px; overflow-x: auto; }
.qs-term code { font-family: var(--mono); font-size: 12.5px; line-height: 1.85; color: #d6d5d1; white-space: pre; }
.qs-term .cm { color: var(--dim); }
.qs-term .pr { color: #7ee787; }
.qs-term .st { color: #a8cbfe; }
.qs-term .kw { color: var(--ember); }

.swagger-shell { max-width: 1180px; margin: clamp(40px,6vw,64px) auto 0; padding: 0 var(--pad) clamp(60px,8vw,100px); }
.swagger-shell .sec-label { display: flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--dim); margin: 0 0 18px; }
.swagger-shell .sec-label::before { content: ""; width: 26px; height: 2px; border-radius: 2px; background: var(--grad); }

/* ── Swagger UI dark theme (mapped onto lunaris tokens) ──────────── */
#swagger { background: transparent; }
.swagger-ui, .swagger-ui .info .title, .swagger-ui .opblock-tag, .swagger-ui label,
.swagger-ui .parameter__name, .swagger-ui table thead tr td, .swagger-ui table thead tr th,
.swagger-ui .response-col_status, .swagger-ui .col_header, .swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5, .swagger-ui .opblock-description-wrapper p,
.swagger-ui .opblock-section-header h4, .swagger-ui .tab li, .swagger-ui .parameter__type,
.swagger-ui .prop-type, .swagger-ui .model-title, .swagger-ui .model, .swagger-ui section.models h4 { color: #e7e6e2 !important; }
.swagger-ui .opblock-tag { border-bottom: 1px solid var(--line); font-size: 20px; }
.swagger-ui .opblock-tag small { color: var(--mute) !important; }
.swagger-ui .info { margin: 0 0 22px; }
.swagger-ui .info .base-url, .swagger-ui .info hgroup.main a { color: var(--mute) !important; }
.swagger-ui .info p, .swagger-ui .markdown p, .swagger-ui .info li { color: #b9b8b4 !important; }
.swagger-ui .scheme-container { background: var(--panel); box-shadow: none; border: 1px solid var(--line-soft); border-radius: 12px; margin: 0 0 22px; }
.swagger-ui .opblock { border-radius: 12px; margin: 0 0 12px; border: 1px solid var(--line-soft); box-shadow: none; }
.swagger-ui .opblock .opblock-summary { border: none; }
.swagger-ui .opblock .opblock-summary-path, .swagger-ui .opblock .opblock-summary-path__deprecated { color: #e7e6e2 !important; font-family: var(--mono); }
.swagger-ui .opblock .opblock-summary-description { color: var(--mute) !important; }
.swagger-ui .opblock.opblock-get { background: rgba(255,255,255,.02); border-color: var(--line); }
.swagger-ui .opblock.opblock-get .opblock-summary-method { background: #3a3a3a; }
.swagger-ui .opblock.opblock-post { background: rgba(59, 130, 246,.05); border-color: rgba(59, 130, 246,.35); }
.swagger-ui .opblock.opblock-post .opblock-summary-method { background: var(--ember); }
.swagger-ui .opblock.opblock-put { background: rgba(138,61,255,.05); border-color: rgba(138,61,255,.35); }
.swagger-ui .opblock.opblock-put .opblock-summary-method { background: #8a3dff; }
.swagger-ui .opblock.opblock-patch { background: rgba(138,61,255,.05); border-color: rgba(138,61,255,.3); }
.swagger-ui .opblock.opblock-patch .opblock-summary-method { background: #7b52c9; }
.swagger-ui .opblock.opblock-delete { background: rgba(255,47,123,.05); border-color: rgba(255,47,123,.35); }
.swagger-ui .opblock.opblock-delete .opblock-summary-method { background: var(--rose); }
.swagger-ui .opblock-body pre.microlight, .swagger-ui .highlight-code, .swagger-ui .body-param__example,
.swagger-ui textarea, .swagger-ui .curl-command, .swagger-ui .responses-inner { background: #060606 !important; }
.swagger-ui .opblock-body pre.microlight span, .swagger-ui .microlight code { color: #d6d5d1 !important; }
.swagger-ui .opblock-section-header { background: rgba(255,255,255,.03); box-shadow: none; }
.swagger-ui select, .swagger-ui input[type=text], .swagger-ui input[type=password], .swagger-ui textarea { background: #0c0c0c; color: #e7e6e2; border: 1px solid var(--line); }
.swagger-ui .btn { border-radius: 8px; }
.swagger-ui .btn.authorize { color: var(--ember); border-color: rgba(59, 130, 246,.5); }
.swagger-ui .btn.authorize svg { fill: var(--ember); }
.swagger-ui .btn.execute { background: var(--ember); border-color: var(--ember); color: #0a0a0a; }
.swagger-ui .topbar, .swagger-ui .info hgroup.main { display: none; }
.swagger-ui section.models { border: 1px solid var(--line-soft); border-radius: 12px; background: var(--panel); }
.swagger-ui section.models .model-container { background: rgba(255,255,255,.02); }
.swagger-ui .model-box { background: transparent; }
.swagger-ui .parameter__name.required span { color: var(--rose) !important; }
.swagger-ui .response-col_status { color: #e7e6e2 !important; }
.swagger-ui .markdown code, .swagger-ui .renderedMarkdown code { background: rgba(255,255,255,.08); color: #a8cbfe; }
.swagger-ui svg:not(:root) { fill: #b9b8b4; }
.swagger-ui .opblock-summary-method { border-radius: 7px; }
.swagger-ui .authorization__btn { color: var(--mute); }
@media (max-width: 700px){ .swagger-ui .opblock-summary-path { max-width: 55vw; } }

/* ── surfaces Swagger keeps light: matched at its own specificity ── */

/* "Parameters" / "Responses" bars inside an expanded operation */
.swagger-ui .opblock .opblock-section-header {
  background: rgba(255,255,255,.035);
  box-shadow: none;
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
}
.swagger-ui .opblock .opblock-section-header h4,
.swagger-ui .opblock .opblock-section-header > label,
.swagger-ui .opblock .opblock-section-header > label span { color: #e7e6e2 !important; }

/* tab strip + its active underline (was blue) */
.swagger-ui .tab li button.tablinks { color: var(--mute); }
.swagger-ui .tab li.active button.tablinks { color: var(--ink); }
.swagger-ui .opblock .opblock-section-header .tab-header .tab-item.active h4 span::after,
.swagger-ui .tab li.active h4 span::after { background: var(--ember) !important; }

/* the white focus ring around a summary row */
.swagger-ui .opblock-summary-control:focus,
.swagger-ui .opblock-tag:focus,
.swagger-ui button:focus { outline: 2px solid rgba(59, 130, 246,.7); outline-offset: 2px; }
.swagger-ui .opblock-summary-control:focus:not(:focus-visible) { outline: none; }

/* buttons */
.swagger-ui .btn { color: var(--ink); border: 1px solid var(--line); background: rgba(255,255,255,.02); }
.swagger-ui .btn:hover { border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.05); box-shadow: none; }
.swagger-ui .btn.cancel { border-color: var(--line); color: var(--mute); background: transparent; }
.swagger-ui .btn.cancel:hover { color: var(--ink); border-color: rgba(255,255,255,.22); }
.swagger-ui .btn.execute {
  background: var(--ember); border: 1px solid var(--ember); color: #0a0a0a; font-weight: 600;
}
.swagger-ui .btn.execute:hover { background: #60a5fa; border-color: #60a5fa; }
.swagger-ui .copy-to-clipboard, .swagger-ui .download-contents {
  background: rgba(255,255,255,.1); border-radius: 6px;
}
.swagger-ui .copy-to-clipboard button, .swagger-ui .download-contents { color: var(--ink); }

/* tables, parameters, responses */
.swagger-ui table thead tr td, .swagger-ui table thead tr th {
  border-bottom: 1px solid var(--line); color: var(--dim) !important;
  font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
}
.swagger-ui table tbody tr td { border-top: 1px solid var(--line-soft); color: #b9b8b4; }
.swagger-ui .parameter__name { color: #e7e6e2 !important; font-family: var(--mono); }
.swagger-ui .parameter__type, .swagger-ui .parameter__in,
.swagger-ui .parameter__deprecated { color: var(--dim) !important; font-family: var(--mono); }
.swagger-ui .response-col_links, .swagger-ui .response-col_links i { color: var(--dim) !important; }
.swagger-ui .response-col_status { font-family: var(--mono); }
.swagger-ui .opblock-description-wrapper, .swagger-ui .opblock-external-docs-wrapper,
.swagger-ui .opblock-title_normal { color: #b9b8b4 !important; }

/* inputs and selects everywhere (incl. the media-type picker) */
.swagger-ui select, .swagger-ui .response-control-media-type select,
.swagger-ui .content-type, .swagger-ui input[type=email],
.swagger-ui input[type=file], .swagger-ui input[type=search] {
  background: #0c0c0c !important; color: #e7e6e2 !important;
  border: 1px solid var(--line) !important; box-shadow: none;
}
.swagger-ui .filter .operation-filter-input { border: 1px solid var(--line); background: #0c0c0c; color: var(--ink); }

/* the Authorize modal - white by default */
.swagger-ui .dialog-ux .modal-ux {
  background: var(--panel); border: 1px solid var(--line); border-radius: 14px;
  box-shadow: 0 30px 80px rgba(0,0,0,.7);
}
.swagger-ui .dialog-ux .modal-ux-header { border-bottom: 1px solid var(--line); }
.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 .auth-container h4, .swagger-ui .auth-container label,
.swagger-ui .auth-container .wrapper { color: #e7e6e2 !important; }
.swagger-ui .dialog-ux-backdrop { background: rgba(0,0,0,.82); }
.swagger-ui .auth-container { border-bottom: 1px solid var(--line-soft); }
/* in the modal: Authorize is the primary action, Close is secondary */
.swagger-ui .auth-btn-wrapper .btn.modal-btn.auth.authorize {
  background: #f5f4f1; color: #0a0a0a; border-color: #f5f4f1; font-weight: 600;
}
.swagger-ui .auth-btn-wrapper .btn.modal-btn.auth.authorize svg { fill: #0a0a0a; }
.swagger-ui .auth-btn-wrapper .btn.modal-btn.btn-done {
  background: transparent; color: var(--mute); border: 1px solid var(--line);
}
.swagger-ui .auth-btn-wrapper .btn.modal-btn.btn-done:hover { color: var(--ink); border-color: rgba(255,255,255,.22); }

/* models block */
.swagger-ui .model-toggle::after { background: none; }
.swagger-ui section.models h4, .swagger-ui .model-title { color: #e7e6e2 !important; }
.swagger-ui .prop-format, .swagger-ui .model .property.primitive { color: var(--dim) !important; }

/* softer POST tint - the solid badge already carries the colour */
.swagger-ui .opblock.opblock-post { background: rgba(59, 130, 246,.035); border-color: rgba(59, 130, 246,.28); }
.swagger-ui .opblock.opblock-post .opblock-summary { border-color: rgba(59, 130, 246,.2); }

/* misc leftovers */
.swagger-ui .errors-wrapper { background: rgba(255,47,123,.08); border-color: rgba(255,47,123,.4); }
.swagger-ui .errors-wrapper .errors h4, .swagger-ui .errors-wrapper hgroup h4 { color: var(--rose) !important; }
.swagger-ui .response-control-media-type__accept-message { color: var(--dim) !important; }
.swagger-ui .loading-container .loading::after { color: var(--mute); }
.swagger-ui .opblock-body { background: transparent; }
.swagger-ui .opblock.is-open .opblock-summary { border-bottom: 1px solid var(--line-soft); }
    
