@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap");

:root {
    --bg: #080c12;
    --panel: #0c1118;
    --panel-2: #0a0f16;
    --panel-3: #090d13;
    --text: #eef2f7;
    --muted: #7a8899;
    --blue: #00d4ff;
    --blue-soft: #0088b3;
    --outline: #162030;
    --chip: #1a2535;
    --accent: #00d4ff;
    --accent-glow: rgba(0, 212, 255, 0.18);
    --green: #059669;
    --red: #e11d48;
}

html {
    box-sizing: border-box;
    overflow: -moz-scrollbars-vertical;
    overflow-y: scroll;
}

*,
*:before,
*:after {
    box-sizing: inherit;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: 'IBM Plex Sans', sans-serif;
}

/* ── Swagger UI global overrides ── */

.swagger-ui {
    font-family: 'IBM Plex Sans', sans-serif !important;
    color: var(--text) !important;
}

/* Info block */
.swagger-ui .info .title,
.swagger-ui .info h1,
.swagger-ui .info h2,
.swagger-ui .info h3,
.swagger-ui .info p,
.swagger-ui .info a {
    color: var(--text) !important;
}

.swagger-ui .info .base-url {
    color: var(--muted) !important;
}

/* Main wrapper */
.swagger-ui .wrapper {
    background: var(--bg) !important;
}

/* Operation blocks */
.swagger-ui .opblock {
    background: var(--panel) !important;
    border: 1px solid var(--outline) !important;
    border-radius: 8px !important;
    margin-bottom: 8px !important;
    box-shadow: none !important;
}

.swagger-ui .opblock .opblock-summary {
    border-bottom: 1px solid var(--outline) !important;
}

.swagger-ui .opblock .opblock-summary-method {
    border-radius: 4px !important;
    font-weight: 600 !important;
    font-family: 'IBM Plex Sans', sans-serif !important;
}

.swagger-ui .opblock.opblock-post .opblock-summary-method {
    background: var(--blue-soft) !important;
}

.swagger-ui .opblock.opblock-get .opblock-summary-method {
    background: #1a6e35 !important;
}

.swagger-ui .opblock.opblock-put .opblock-summary-method {
    background: #7a5300 !important;
}

.swagger-ui .opblock.opblock-delete .opblock-summary-method {
    background: var(--red) !important;
}

.swagger-ui .opblock.opblock-post {
    border-color: var(--blue-soft) !important;
}

.swagger-ui .opblock.opblock-get {
    border-color: #1a6e35 !important;
}

.swagger-ui .opblock.opblock-put {
    border-color: #7a5300 !important;
}

.swagger-ui .opblock.opblock-delete {
    border-color: var(--red) !important;
}

.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-description,
.swagger-ui .opblock .opblock-summary-path__deprecated {
    color: var(--text) !important;
}

/* Opblock body & section headers */
.swagger-ui .opblock-body,
.swagger-ui .opblock-description-wrapper,
.swagger-ui .opblock-external-docs-wrapper,
.swagger-ui .opblock-title_normal {
    background: var(--panel) !important;
    color: var(--text) !important;
}

/* Parameters / Responses tab bar */
.swagger-ui .tab li,
.swagger-ui .tab li button,
.swagger-ui .tab li a {
    color: var(--muted) !important;
}

.swagger-ui .tab li.active,
.swagger-ui .tab li.active button,
.swagger-ui .tab li.active a {
    color: var(--text) !important;
}

/* Section header rows (Parameters, Responses stripes) */
.swagger-ui .opblock-section-header {
    background: var(--panel-2) !important;
    border-top: 1px solid var(--outline) !important;
    border-bottom: 1px solid var(--outline) !important;
}

.swagger-ui .opblock-section-header h4,
.swagger-ui .opblock-section-header label {
    color: var(--text) !important;
}

/* "Try it out" / "Cancel" buttons */
.swagger-ui .try-out__btn {
    padding: 8px 20px !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, 0.06) !important;
    color: var(--text) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    font-family: 'IBM Plex Sans', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 0.03em !important;
    transition: border-color 0.2s ease !important;
}

.swagger-ui .try-out__btn:hover {
    border-color: rgba(255, 255, 255, 0.28) !important;
}

/* Parameters */
.swagger-ui .parameters-container,
.swagger-ui .parameter__name,
.swagger-ui .parameter__type,
.swagger-ui .parameter__deprecated,
.swagger-ui .parameter__in,
.swagger-ui table thead tr th,
.swagger-ui table thead tr td {
    color: var(--text) !important;
    background: transparent !important;
}

.swagger-ui table tbody tr td {
    color: var(--text) !important;
    border-color: var(--outline) !important;
    background: transparent !important;
}

/* "required" label */
.swagger-ui .parameter__name.required span,
.swagger-ui .parameter__name.required::after {
    color: var(--red) !important;
}

/* Markdown / description text */
.swagger-ui .parameter__extension,
.swagger-ui .renderedMarkdown p,
.swagger-ui .renderedMarkdown li,
.swagger-ui .renderedMarkdown code {
    color: var(--muted) !important;
}

/* Input fields */
.swagger-ui .parameters-col_description input[type=text],
.swagger-ui .parameters-col_description input[type=password],
.swagger-ui .parameters-col_description select,
.swagger-ui textarea,
.swagger-ui input[type=text],
.swagger-ui input[type=password],
.swagger-ui input[type=email] {
    background: #1a2535 !important;
    color: var(--text) !important;
    border: 1px solid #2a3f5a !important;
    border-radius: 4px !important;
    font-family: 'IBM Plex Sans', monospace !important;
}

.swagger-ui textarea:focus,
.swagger-ui input:focus,
.swagger-ui select:focus {
    outline: 1px solid var(--accent) !important;
    border-color: var(--accent) !important;
}

/* Buttons — wallet pill-btn style */
.swagger-ui .btn {
    padding: 8px 20px !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    color: var(--text) !important;
    font-family: 'IBM Plex Sans', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 0.03em !important;
    transition: border-color 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease !important;
    cursor: pointer !important;
}

.swagger-ui .btn:hover {
    border-color: rgba(255, 255, 255, 0.28) !important;
}

.swagger-ui .btn.execute {
    background: var(--blue-soft) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 8px 24px rgba(0, 136, 179, 0.35) !important;
}

.swagger-ui .btn.execute:hover {
    background: var(--accent) !important;
    color: #000 !important;
    box-shadow: 0 10px 28px rgba(0, 212, 255, 0.45) !important;
    border-color: transparent !important;
}

.swagger-ui .btn.cancel {
    background: transparent !important;
    border: 1px solid var(--red) !important;
    color: var(--red) !important;
}

.swagger-ui .btn.cancel:hover {
    background: rgba(225, 29, 72, 0.1) !important;
}

.swagger-ui .btn:disabled,
.swagger-ui .btn[disabled] {
    background: #111820 !important;
    border-color: #1a2535 !important;
    color: #3d5068 !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
    opacity: 0.45 !important;
}

/* Execute wrapper background */
.swagger-ui .execute-wrapper {
    background: var(--panel-2) !important;
    border-top: 1px solid var(--outline) !important;
}

/* Responses */
.swagger-ui .responses-wrapper {
    background: var(--panel) !important;
}

.swagger-ui .responses-inner,
.swagger-ui .response-col_status,
.swagger-ui .response-col_description,
.swagger-ui .response-col_links {
    color: var(--text) !important;
    background: transparent !important;
}

/* Live response block */
.swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5,
.swagger-ui .live-responses-table .response td {
    color: var(--text) !important;
}

.swagger-ui .response-control-media-type__accept-message {
    color: var(--accent) !important;
}

/* Hide single-option media type dropdowns */
.swagger-ui .response-control-media-type,
.swagger-ui .content-type {
    display: none !important;
}

/* Media type select */
.swagger-ui .response-control-media-type select,
.swagger-ui .content-type select {
    background: #1a2535 !important;
    color: var(--text) !important;
    border: 1px solid #2a3f5a !important;
    border-radius: 4px !important;
}

.swagger-ui .microlight,
.swagger-ui .highlight-code,
.swagger-ui .example.microlight {
    background: #111822 !important;
    color: var(--text) !important;
    border: 1px solid #2a3f5a !important;
    border-radius: 4px !important;
}

/* Curl / request URL blocks */
.swagger-ui .curl-command,
.swagger-ui .request-url {
    background: #111822 !important;
    color: var(--text) !important;
    border: 1px solid #2a3f5a !important;
    border-radius: 4px !important;
}

.swagger-ui .curl-command pre,
.swagger-ui .request-url pre {
    color: var(--text) !important;
}

/* Scheme/server select */
.swagger-ui .scheme-container {
    background: var(--panel) !important;
    border-bottom: 1px solid var(--outline) !important;
    box-shadow: none !important;
    padding: 12px 0 !important;
}

.swagger-ui .servers>label,
.swagger-ui .schemes>label {
    color: var(--muted) !important;
}

.swagger-ui .servers select,
.swagger-ui .schemes select {
    background: var(--panel-3) !important;
    color: var(--text) !important;
    border: 1px solid var(--outline) !important;
    border-radius: 4px !important;
}

/* Tags / section headers */
.swagger-ui .opblock-tag {
    color: var(--accent) !important;
    border-bottom: 1px solid var(--outline) !important;
}

.swagger-ui .opblock-tag:hover {
    background: var(--chip) !important;
}

/* Models */
.swagger-ui section.models {
    background: var(--panel) !important;
    border: 1px solid var(--outline) !important;
    border-radius: 8px !important;
}

.swagger-ui section.models h4,
.swagger-ui .model-title,
.swagger-ui .model,
.swagger-ui .model-box {
    color: var(--text) !important;
    background: transparent !important;
}

.swagger-ui .model-toggle:after {
    filter: invert(1) !important;
}

/* Links */
.swagger-ui a {
    color: var(--accent) !important;
}

.swagger-ui a:hover {
    color: var(--text) !important;
}

/* Markdown inside descriptions */
.swagger-ui .markdown p,
.swagger-ui .markdown li {
    color: var(--muted) !important;
}

/* Arrow chevrons */
.swagger-ui .arrow {
    filter: invert(1) !important;
}

/* Authorization */
.swagger-ui .auth-wrapper,
.swagger-ui .auth-container {
    background: var(--panel) !important;
    color: var(--text) !important;
    border: 1px solid var(--outline) !important;
    border-radius: 8px !important;
}

.swagger-ui .auth-container input[type=text],
.swagger-ui .auth-container input[type=password] {
    background: var(--panel-3) !important;
    color: var(--text) !important;
    border: 1px solid var(--outline) !important;
    border-radius: 4px !important;
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: var(--bg);
}

::-webkit-scrollbar-thumb {
    background: var(--outline);
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--muted);
}

/* ── Approver toolbar ── */

.approver-toolbar-outer {
    background: #0a1018;
    border-bottom: 1px solid var(--outline);
}

.approver-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 20px;
    max-width: 1460px;
    margin: 0 auto;
    font-family: 'IBM Plex Sans', sans-serif;
    box-sizing: border-box;
}

.approver-toolbar__label {
    color: var(--text);
    font-size: 14px;
}

.approver-toolbar__select {
    padding: 4px 8px;
    font-size: 14px;
    border-radius: 4px;
    background: var(--panel-3);
    color: var(--text);
    border: 1px solid var(--outline);
    font-family: inherit;
}

.approver-toolbar__select:focus {
    outline: 1px solid var(--accent);
    border-color: var(--accent);
}

.approver-toolbar__btn {
    padding: 4px 14px;
    font-size: 14px;
    border-radius: 4px;
    cursor: pointer;
    background: var(--blue-soft);
    color: var(--text);
    border: 1px solid var(--blue-soft);
    font-family: inherit;
    font-weight: 500;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.approver-toolbar__btn:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: #000;
}

.approver-toolbar__status {
    color: var(--muted);
    font-size: 13px;
}

.approver-toolbar__input {
    padding: 4px 8px;
    font-size: 14px;
    border-radius: 4px;
    background: var(--panel-3);
    color: var(--text);
    border: 1px solid var(--outline);
    font-family: inherit;
    width: 180px;
}

.approver-toolbar__input:focus {
    outline: 1px solid var(--accent);
    border-color: var(--accent);
}

/* Hide the per-endpoint api-key parameter row (now set globally via the toolbar input) */
.swagger-ui tr[data-param-name="api-key"] {
    display: none !important;
}