/* API reference page — Swagger UI brand overrides.
 *
 * Adapted from airbrx.ai/docs/api.html, but bound to the admin app's CSS
 * variables (--text, --muted, --accent, --card-bg, etc.) so the swagger
 * panel inherits dark/light themes from /lib/theme.js. */

.swagger-container {
  padding: var(--s-24, 24px);
}

/* Global font override — match the rest of the app. */
.swagger-ui,
.swagger-ui .info,
.swagger-ui .opblock,
.swagger-ui .opblock-tag,
.swagger-ui table,
.swagger-ui .parameter__name,
.swagger-ui .parameter__type,
.swagger-ui .response-col_status,
.swagger-ui .response-col_description,
.swagger-ui .btn {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI",
    Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

/* Default Swagger topbar is hidden — we already have the app header. */
.swagger-ui .topbar {
  display: none;
}

/* Info section. */
.swagger-ui .info {
  margin: 0 0 24px 0;
}
.swagger-ui .info .title,
.swagger-ui .info .title small,
.swagger-ui .info .title small pre {
  color: var(--text-strong, #1a1a1a);
}
.swagger-ui .info .description,
.swagger-ui .info .description p,
.swagger-ui .info .base-url {
  color: var(--muted, #8a8a8a);
}
.swagger-ui .info a {
  color: var(--accent, #fd6c1d);
}

/* Servers / scheme picker. */
.swagger-ui .scheme-container {
  background: var(--bg, #f9f9f9);
  border-radius: 12px;
  padding: 12px 16px;
  border: 1px solid var(--border, #e5e5e5);
  box-shadow: none;
}
.swagger-ui .servers > label:nth-of-type(2),
.swagger-ui .servers-title,
.swagger-ui .server-variables {
  display: none !important;
}

/* Authorize button. */
.swagger-ui .btn.authorize {
  background: var(--accent, #fd6c1d);
  border-color: var(--accent, #fd6c1d);
  color: white !important;
  border-radius: 8px;
  font-weight: 600;
  padding: 8px 16px;
}
.swagger-ui .btn.authorize:hover {
  background: var(--accent-hover, #ff8c42);
  border-color: var(--accent-hover, #ff8c42);
  box-shadow: 0 4px 12px var(--accent-shadow, rgba(253, 108, 29, 0.25));
}
.swagger-ui .btn.authorize svg {
  fill: white !important;
}
.swagger-ui .authorization__btn {
  fill: var(--accent, #fd6c1d) !important;
}

/* Tag (category) headers. */
.swagger-ui .opblock-tag {
  border-bottom: 1px solid var(--border, #e5e5e5);
  font-size: 18px;
  font-weight: 600;
  color: var(--text-strong, #505050);
  padding: 14px 0;
}
.swagger-ui .opblock-tag:hover {
  background: var(--accent-shadow, rgba(253, 108, 29, 0.04));
}
.swagger-ui .opblock-tag small,
.swagger-ui .opblock-tag small p {
  font-size: 13px;
  color: var(--muted, #8a8a8a);
  font-weight: 400;
}
.swagger-ui .expand-operation svg,
.swagger-ui .opblock-tag svg {
  fill: var(--muted, #8a8a8a);
}

/* Operation blocks. */
.swagger-ui .opblock {
  border-radius: 12px;
  border: 1px solid var(--border, #e5e5e5);
  margin: 0 0 12px 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  overflow: hidden;
}
.swagger-ui .opblock .opblock-summary {
  border: none;
  padding: 10px 14px;
}
.swagger-ui .opblock .opblock-summary-method {
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
  min-width: 70px;
  padding: 6px 12px;
  text-align: center;
}
.swagger-ui .opblock.opblock-get .opblock-summary-method        { background: #198754; }
.swagger-ui .opblock.opblock-post .opblock-summary-method       { background: #0d6efd; }
.swagger-ui .opblock.opblock-put .opblock-summary-method        { background: var(--accent, #fd6c1d); }
.swagger-ui .opblock.opblock-delete .opblock-summary-method     { background: #dc3545; }
.swagger-ui .opblock.opblock-patch .opblock-summary-method      { background: #6f42c1; }

.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-path__deprecated,
.swagger-ui .opblock .opblock-summary-path a {
  font-family: 'SF Mono', 'Monaco', 'Consolas', monospace !important;
  font-size: 14px;
  color: var(--text-strong, #505050);
}
.swagger-ui .opblock .opblock-summary-description {
  font-size: 13px;
  color: var(--muted, #8a8a8a);
}

/* Expanded operation body. */
.swagger-ui .opblock-body,
.swagger-ui .opblock-section-header {
  background: var(--card-bg, #fafafa);
}
.swagger-ui .opblock-section-header {
  border-bottom: 1px solid var(--border, #e5e5e5);
  padding: 12px 18px;
}
.swagger-ui .opblock-section-header h4,
.swagger-ui .opblock-section-header label {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-strong, #505050);
}
.swagger-ui .opblock-body pre,
.swagger-ui .highlight-code,
.swagger-ui .microlight {
  background: #2d2d2d !important;
  border-radius: 8px;
  font-family: 'SF Mono', 'Monaco', 'Consolas', monospace !important;
}

/* Parameters table. */
.swagger-ui table.parameters tbody tr td,
.swagger-ui table tbody tr td {
  padding: 12px 0;
  border-bottom: 1px solid var(--border, #eee);
  color: var(--text, #505050);
}
.swagger-ui .parameter__name {
  font-family: 'SF Mono', 'Monaco', 'Consolas', monospace !important;
  font-size: 13px;
  color: var(--text-strong, #505050);
}
.swagger-ui .parameter__name.required::after {
  color: #dc3545;
}
.swagger-ui .parameter__type,
.swagger-ui .parameter__deprecated,
.swagger-ui .parameter__extension {
  font-size: 12px;
  color: var(--muted, #8a8a8a);
}
.swagger-ui .parameter__in {
  font-size: 11px;
  color: var(--muted, #8a8a8a);
  background: var(--bg, #f0f0f0);
  padding: 2px 6px;
  border-radius: 4px;
}

/* Try-it / Execute / Cancel buttons. */
.swagger-ui .btn.try-out__btn {
  border-radius: 6px;
  border: 2px solid var(--accent, #fd6c1d);
  color: var(--accent, #fd6c1d);
  font-weight: 600;
}
.swagger-ui .btn.try-out__btn:hover {
  background: var(--accent, #fd6c1d);
  color: white;
}
.swagger-ui .btn.try-out__btn.cancel {
  border-color: #6c757d;
  color: #6c757d;
}
.swagger-ui .btn.execute {
  background: var(--accent, #fd6c1d);
  border-color: var(--accent, #fd6c1d);
  border-radius: 6px;
  font-weight: 600;
}
.swagger-ui .btn.execute:hover {
  background: var(--accent-hover, #e65a0d);
}

/* Response section. */
.swagger-ui .responses-wrapper {
  padding: 14px 18px;
}
.swagger-ui .response-col_status {
  font-family: 'SF Mono', 'Monaco', 'Consolas', monospace !important;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-strong, #505050);
}
.swagger-ui .response-col_description,
.swagger-ui .response-col_description__inner div.markdown,
.swagger-ui .response-col_description__inner div.markdown p {
  font-size: 13px;
  color: var(--muted, #8a8a8a);
}
.swagger-ui table.responses-table {
  border-radius: 8px;
  overflow: hidden;
}
.swagger-ui .responses-table thead {
  background: var(--bg, #f5f5f5);
}

/* Models. */
.swagger-ui section.models {
  border: 1px solid var(--border, #e5e5e5);
  border-radius: 12px;
  overflow: hidden;
  background: var(--card-bg, #fff);
}
.swagger-ui section.models h4 {
  font-size: 16px;
  font-weight: 600;
  color: var(--text-strong, #505050);
  padding: 14px 18px;
  margin: 0;
  background: var(--bg, #fafafa);
  border-bottom: 1px solid var(--border, #e5e5e5);
}
.swagger-ui .model-box {
  background: var(--bg, #fafafa);
  border-radius: 8px;
  padding: 12px;
}
.swagger-ui .model {
  font-family: 'SF Mono', 'Monaco', 'Consolas', monospace !important;
  font-size: 13px;
  color: var(--text, #505050);
}

/* Inputs. */
.swagger-ui input[type="text"],
.swagger-ui input[type="password"],
.swagger-ui input[type="search"],
.swagger-ui input[type="email"],
.swagger-ui textarea,
.swagger-ui select {
  border-radius: 6px;
  border: 1px solid var(--border-strong, #d0d0d0);
  background: var(--input-bg, #fff);
  color: var(--text, #505050);
  font-family: inherit;
}
.swagger-ui input[type="text"]:focus,
.swagger-ui textarea:focus,
.swagger-ui select:focus {
  border-color: var(--accent, #fd6c1d);
  box-shadow: 0 0 0 3px var(--accent-shadow, rgba(253, 108, 29, 0.1));
  outline: none;
}

/* Filter input. */
.swagger-ui .filter-container {
  margin: 16px 0;
}
.swagger-ui .filter-container input[type="text"] {
  padding: 10px 16px;
  border-radius: 8px;
  width: 100%;
  max-width: 400px;
}

/* Loading. */
.swagger-ui .loading-container {
  padding: 40px;
}

@media (max-width: 768px) {
  .swagger-container {
    padding: var(--s-12, 12px);
  }
  .swagger-ui .opblock .opblock-summary-method {
    min-width: 60px;
    font-size: 11px;
  }
}
