@import url("https://cdn.jsdelivr.net/npm/swagger-ui-dist@5/swagger-ui.css");
@import url("https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&display=swap");

:root {
  --hsc-bg: hsl(240 10% 3.9%);
  --hsc-card: hsl(240 6% 8%);
  --hsc-input: hsl(240 5% 13%);
  --hsc-border: hsl(240 6% 100% / 0.08);
  --hsc-text: hsl(0 0% 98%);
  --hsc-muted: hsl(240 5% 65%);
  --hsc-primary: hsl(158 84% 45%);
}
body {
  margin: 0;
  background:
    radial-gradient(60rem 40rem at 85% -10%, hsl(158 84% 45% / 0.08), transparent 60%),
    var(--hsc-bg);
  font-family: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.swagger-ui, .swagger-ui .info .title, .swagger-ui p, .swagger-ui label,
.swagger-ui .opblock-tag, .swagger-ui table thead tr th, .swagger-ui .tab li,
.swagger-ui .parameter__name, .swagger-ui .parameter__type,
.swagger-ui .response-col_status, .swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5, .swagger-ui .markdown p, .swagger-ui .model-title,
.swagger-ui .model, .swagger-ui h1, .swagger-ui h2, .swagger-ui h3, .swagger-ui h4,
.swagger-ui h5, .swagger-ui .opblock .opblock-section-header h4,
.swagger-ui .opblock .opblock-section-header label {
  color: var(--hsc-text) !important;
  font-family: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.swagger-ui .topbar { display: none; }
.swagger-ui .info { margin: 32px 0 24px; }
.swagger-ui .info hgroup.main a { color: var(--hsc-primary); }
.swagger-ui .scheme-container {
  background: var(--hsc-card);
  box-shadow: none;
  border: 1px solid var(--hsc-border);
  border-radius: 14px;
}
.swagger-ui .opblock-tag {
  border-bottom: 1px solid var(--hsc-border);
  color: var(--hsc-text);
}
.swagger-ui .opblock {
  background: var(--hsc-card);
  border: 1px solid var(--hsc-border);
  border-radius: 14px;
  box-shadow: none;
  margin: 0 0 14px;
}
.swagger-ui .opblock .opblock-summary { border-color: var(--hsc-border); }
.swagger-ui .opblock .opblock-summary-method { border-radius: 8px; }
.swagger-ui .opblock-description-wrapper p,
.swagger-ui .opblock-title_normal p,
.swagger-ui .opblock-external-docs-wrapper p,
.swagger-ui .parameter__type,
.swagger-ui table tbody tr td,
.swagger-ui .response-col_links {
  color: var(--hsc-muted) !important;
}
.swagger-ui .opblock.opblock-get {
  background: hsl(158 84% 45% / 0.06);
  border-color: hsl(158 84% 45% / 0.3);
}
.swagger-ui .opblock.opblock-get .opblock-summary-method {
  background: hsl(158 84% 40%);
}
.swagger-ui .opblock.opblock-post {
  background: hsl(214 90% 60% / 0.06);
  border-color: hsl(214 90% 60% / 0.3);
}
.swagger-ui .opblock.opblock-delete {
  background: hsl(0 72% 60% / 0.06);
  border-color: hsl(0 72% 60% / 0.3);
}
.swagger-ui .opblock.opblock-put {
  background: hsl(38 92% 58% / 0.06);
  border-color: hsl(38 92% 58% / 0.3);
}
.swagger-ui input, .swagger-ui select, .swagger-ui textarea {
  background: var(--hsc-input) !important;
  color: var(--hsc-text) !important;
  border: 1px solid var(--hsc-border) !important;
  border-radius: 8px;
}
.swagger-ui .btn {
  color: var(--hsc-text);
  border-color: var(--hsc-border);
  background: transparent;
  box-shadow: none;
  border-radius: 8px;
}
.swagger-ui .btn.authorize { color: var(--hsc-primary); border-color: var(--hsc-primary); }
.swagger-ui .btn.authorize svg { fill: var(--hsc-primary); }
.swagger-ui .btn.execute {
  background: var(--hsc-primary);
  color: hsl(160 84% 7%);
  border-color: var(--hsc-primary);
  font-weight: 600;
}
.swagger-ui section.models { border-color: var(--hsc-border); background: transparent; }
.swagger-ui section.models .model-container {
  background: var(--hsc-card);
  border-radius: 10px;
}
.swagger-ui .model-box { background: hsl(240 6% 100% / 0.03); }
.swagger-ui .highlight-code, .swagger-ui .microlight {
  background: hsl(240 10% 2%) !important;
  border-radius: 10px;
}
.swagger-ui .markdown code, .swagger-ui .renderedMarkdown code {
  background: hsl(240 6% 100% / 0.08);
  color: hsl(152 70% 80%);
}
.swagger-ui svg:not(:root) { fill: var(--hsc-muted); }
.swagger-ui .info a,
.swagger-ui a.nostyle,
.swagger-ui .opblock-summary-path a {
  color: var(--hsc-primary);
}
.swagger-ui .response-control-media-type__accept-message { color: var(--hsc-primary); }
.swagger-ui select { background-image: none; }
