/**
 * Spork neon theme for Swagger API Explorer.
 * Semantic color hierarchy + darker background. Font tuned for readability.
 * Original Swagger color roles (GET=blue, POST=green, etc.) with neon saturation.
 */
:root {
  /* Darker backgrounds */
  --spork-obsidian: #0c0c0e;
  --spork-carbon: #1a1a1e;
  --spork-iron: #25252b;
  --spork-graphite: #4a4a54;
  --spork-steel: #6e6e7a;
  --spork-frost: #e8e8ec;
  --spork-white: #ffffff;
  /* Semantic text hierarchy – high contrast for readability */
  --text-emphasis: #ffffff;        /* Headings, paths, key identifiers */
  --text-primary: #e4e6ed;        /* Main content – bright for legibility */
  --text-secondary: #c4c8d4;      /* Descriptions, supporting text */
  --text-muted: #a8acb8;          /* Metadata – still clearly legible */
  /* Original roles, neon */
  --neon-blue: #33CCFF;
  --neon-green: #39FF94;
  --neon-orange: #FFB800;
  --neon-red: #FF4444;
  --neon-teal: #00FFCC;
  --neon-purple: #AA00FF;
  --neon-magenta: #FF66CC;
}

html, body {
  margin: 0 !important;
  padding: 0 !important;
}
body {
  background: var(--spork-obsidian) !important;
  color: var(--text-primary) !important;
}

/* Typography – high readability */
.swagger-ui {
  color: var(--text-primary) !important;
  font-family: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  letter-spacing: 0.02em;
}
.swagger-ui p {
  line-height: 1.7;
  margin-bottom: 0.75em;
}
.swagger-ui code,
.swagger-ui .opblock-summary-path {
  font-family: "SF Mono", "Consolas", "Monaco", "Liberation Mono", monospace;
  letter-spacing: 0.02em;
}

/* Top bar - dark with neon accent */
.swagger-ui .topbar {
  background: var(--spork-carbon) !important;
  border-bottom: 1px solid var(--spork-iron) !important;
}
.swagger-ui .topbar .link {
  color: var(--neon-blue) !important;
}

/* Info section - title centered, description separated, high contrast */
.swagger-ui .info {
  margin: 32px 0 40px;
  text-align: center;
  max-width: 72ch;
  margin-left: auto;
  margin-right: auto;
}
.swagger-ui .info .title {
  font-family: "Syne", "Segoe UI", system-ui, sans-serif !important;
  color: var(--text-emphasis) !important;
  font-size: 2.75rem !important;
  font-weight: 700 !important;
  text-align: center !important;
  display: block !important;
  margin-bottom: 0 !important;
}
.swagger-ui .info .title .brand-name {
  font-family: "Playfair Display", Georgia, serif !important;
  font-style: italic !important;
  font-weight: 600 !important;
}
.swagger-ui .info .api-tagline {
  color: var(--text-primary) !important;
  font-size: 1.15rem !important;
  text-align: center !important;
  margin: 0.5rem 0 1rem !important;
  line-height: 1.6;
}
.swagger-ui .info .api-info-details {
  margin-top: 1rem;
  text-align: left;
}
.swagger-ui .info .api-info-details summary {
  color: var(--neon-blue) !important;
  cursor: pointer;
  font-size: 0.9rem;
  user-select: none;
}
.swagger-ui .info .api-info-details summary:hover {
  text-decoration: underline;
}
/* Version badges – no boxes, plain text */
.swagger-ui .info .title small {
  background: none !important;
  border: none !important;
  padding: 0 !important;
  margin-left: 0.5rem;
  color: var(--text-secondary) !important;
  font-weight: 400;
  font-size: 1rem !important;
}
.swagger-ui .info .title small.version-stamp {
  display: inline-block;
  margin-top: 0.25rem;
}
.swagger-ui .info > section,
.swagger-ui .info > div {
  margin-top: 1.5rem !important;
  text-align: left;
}
.swagger-ui .info .description,
.swagger-ui .info .description p,
.swagger-ui .info .description li,
.swagger-ui .info .description strong,
.swagger-ui .info .description span,
.swagger-ui .info p,
.swagger-ui .info .renderedMarkdown,
.swagger-ui .info .renderedMarkdown p,
.swagger-ui .info .renderedMarkdown li {
  color: var(--text-primary) !important;
  line-height: 1.65 !important;
}
.swagger-ui .info .description {
  margin-top: 1.25rem !important;
  padding-top: 1rem !important;
  border-top: 1px solid var(--spork-iron) !important;
}
/* Override any dark inherited styles in description markdown */
.swagger-ui .info .description code {
  color: var(--neon-teal) !important;
  background: rgba(0, 255, 204, 0.1) !important;
  padding: 0.15em 0.4em;
  border-radius: 4px;
}
.swagger-ui .info .description a {
  color: var(--neon-blue) !important;
}
/* Info description – force light text on all body content (override Swagger defaults) */
.swagger-ui .info .description .markdown-body,
.swagger-ui .info .description .markdown-body *:not(code):not(a) {
  color: var(--text-primary) !important;
}
.swagger-ui .info .base-url {
  color: var(--text-secondary) !important;
  font-size: 15px !important;
}
.swagger-ui .info a {
  color: var(--neon-blue) !important;
}

/* Operation blocks - original roles: GET=blue, POST=green, PUT=orange, DELETE=red, PATCH=teal */
.swagger-ui .opblock {
  border-color: var(--spork-iron) !important;
}
.swagger-ui .opblock.opblock-get {
  background: var(--spork-carbon) !important;
  border-color: var(--neon-blue) !important;
}
.swagger-ui .opblock.opblock-post {
  background: var(--spork-carbon) !important;
  border-color: var(--neon-green) !important;
}
.swagger-ui .opblock.opblock-put {
  background: var(--spork-carbon) !important;
  border-color: var(--neon-orange) !important;
}
.swagger-ui .opblock.opblock-patch {
  background: var(--spork-carbon) !important;
  border-color: var(--neon-teal) !important;
}
.swagger-ui .opblock.opblock-delete {
  background: var(--spork-carbon) !important;
  border-color: var(--neon-red) !important;
}
.swagger-ui .opblock.opblock-head {
  border-color: var(--neon-purple) !important;
}
.swagger-ui .opblock.opblock-options {
  border-color: var(--neon-blue) !important;
}
.swagger-ui .opblock.opblock-get .opblock-summary-method {
  background: var(--neon-blue) !important;
  color: var(--spork-obsidian) !important;
}
.swagger-ui .opblock.opblock-post .opblock-summary-method {
  background: var(--neon-green) !important;
  color: var(--spork-obsidian) !important;
}
.swagger-ui .opblock.opblock-put .opblock-summary-method {
  background: var(--neon-orange) !important;
  color: var(--spork-obsidian) !important;
}
.swagger-ui .opblock.opblock-patch .opblock-summary-method {
  background: var(--neon-teal) !important;
  color: var(--spork-obsidian) !important;
}
.swagger-ui .opblock.opblock-delete .opblock-summary-method {
  background: var(--neon-red) !important;
  color: var(--spork-white) !important;
}
.swagger-ui .opblock.opblock-head .opblock-summary-method {
  background: var(--neon-purple) !important;
  color: var(--spork-white) !important;
}
.swagger-ui .opblock.opblock-options .opblock-summary-method {
  background: var(--neon-blue) !important;
  color: var(--spork-obsidian) !important;
}
.swagger-ui .opblock .opblock-summary-path {
  color: var(--text-emphasis) !important;
  font-size: 16px !important;
}
/* Subtext – bright for readability */
.swagger-ui .opblock-summary-description,
.swagger-ui .opblock-summary-path-description-wrapper {
  color: var(--text-primary) !important;
  font-size: 15px !important;
}
.swagger-ui .opblock-tag {
  color: var(--text-emphasis) !important;
  border-color: var(--spork-iron) !important;
}
.swagger-ui .opblock-tag small {
  color: var(--text-primary) !important;
}
.swagger-ui .opblock-tag-section {
  border-color: var(--spork-iron) !important;
}

/* Models / schemas section – clean, minimal, neon accents */
.swagger-ui section.models {
  background: transparent !important;
  border: none !important;
  margin-top: 1.5rem;
  padding: 0 !important;
}
.swagger-ui section.models h3 {
  color: var(--text-emphasis) !important;
  border: none !important;
  border-bottom: 1px solid var(--spork-iron) !important;
  padding-bottom: 0.5rem !important;
  font-family: "Syne", "Segoe UI", sans-serif !important;
}
.swagger-ui .model-box-control,
.swagger-ui .model,
.swagger-ui .model-container {
  color: var(--text-primary) !important;
}
.swagger-ui .model-box-control {
  background: transparent !important;
  border: none !important;
  cursor: pointer;
  padding: 8px 0 !important;
  margin-bottom: 4px !important;
}
/* span.model-toggle – icon is ::after with background SVG; override with teal version */
.swagger-ui .model-toggle::after,
.swagger-ui span.model-toggle::after {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%2300FFCC' d='M8 4l8 6-8 6V4z'/%3E%3C/svg%3E") 50% no-repeat !important;
  background-size: 100% !important;
}
/* Schema chevrons and arrows – neon teal (Swagger may use SVGs, paths, or currentColor) */
.swagger-ui section.models svg,
.swagger-ui section.models svg path,
.swagger-ui section.models svg polygon,
.swagger-ui .model-box-control svg,
.swagger-ui .model-box-control svg path,
.swagger-ui .model-toggle svg,
.swagger-ui .model-box svg,
.swagger-ui .model-container svg,
.swagger-ui .model-toggle,
.swagger-ui .model-box-control .arrow,
.swagger-ui .model-box-control button,
.swagger-ui button.model-box-control,
.swagger-ui section.models button,
.swagger-ui [class*="models"] button,
.swagger-ui [class*="schemas"] button {
  fill: var(--neon-teal) !important;
  stroke: var(--neon-teal) !important;
  color: var(--neon-teal) !important;
}
.swagger-ui .model-title {
  color: var(--text-emphasis) !important;
  font-family: "Syne", "Segoe UI", sans-serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
}
.swagger-ui .model-toggle {
  color: var(--neon-teal) !important;
}
.swagger-ui .model-box {
  background: var(--spork-carbon) !important;
  border: 1px solid var(--spork-iron) !important;
  border-radius: 6px !important;
  padding: 14px 18px !important;
  margin: 4px 0 12px !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
}
.swagger-ui .model-box-control + .model-box {
  margin-top: 0 !important;
}
/* Flatten schema table – no nested boxes */
.swagger-ui section.models table,
.swagger-ui section.models td,
.swagger-ui section.models tr {
  border: none !important;
  background: transparent !important;
}
.swagger-ui .model-box-control td {
  padding: 6px 0 !important;
  vertical-align: middle !important;
}
/* Schema semantic colors – higher specificity so they aren’t overridden */
.swagger-ui .prop-name,
.swagger-ui section.models .prop-name {
  color: var(--text-emphasis) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
}
.swagger-ui .prop-type,
.swagger-ui section.models .prop-type {
  color: var(--neon-teal) !important;
  font-size: 15px !important;
}
.swagger-ui .prop-format,
.swagger-ui section.models .prop-format {
  color: var(--neon-teal) !important;
}
.swagger-ui section.models .prop-row,
.swagger-ui section.models td {
  color: var(--text-primary) !important;
  line-height: 1.7 !important;
  font-size: 15px !important;
}
.swagger-ui .model-example,
.swagger-ui section.models .model-example {
  color: var(--neon-teal) !important;
  font-size: 15px !important;
  font-style: italic;
}
.swagger-ui .model-hint {
  color: var(--text-primary) !important;
  background: var(--spork-iron) !important;
  padding: 6px 10px !important;
  border-radius: 4px !important;
  font-size: 14px !important;
}
/* Schema descriptions and nested refs */
.swagger-ui .model .renderedMarkdown,
.swagger-ui .model .renderedMarkdown p,
.swagger-ui section.models .renderedMarkdown,
.swagger-ui section.models .renderedMarkdown p {
  color: var(--text-primary) !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
}
.swagger-ui table thead tr td,
.swagger-ui table thead tr th {
  color: var(--text-secondary) !important;
  border-color: var(--spork-iron) !important;
  font-weight: 600;
  font-size: 15px !important;
}
.swagger-ui table tbody tr td,
.swagger-ui table tbody tr th {
  color: var(--text-primary) !important;
  border-color: var(--spork-iron) !important;
  font-size: 15px !important;
}

/* Buttons - Execute=blue, Authorize=green, Cancel=orange */
.swagger-ui .btn.authorize {
  color: var(--spork-obsidian) !important;
  background: var(--neon-green) !important;
  border-color: var(--neon-green) !important;
}
.swagger-ui .btn.authorize:hover {
  background: #5dffab !important;
  border-color: #5dffab !important;
}
.swagger-ui .opblock .btn:not(.cancel):not(.authorize) {
  color: var(--spork-obsidian) !important;
  background: var(--neon-blue) !important;
  border-color: var(--neon-blue) !important;
}
.swagger-ui .opblock .btn:not(.cancel):not(.authorize):hover {
  background: #4dd4ff !important;
  border-color: #4dd4ff !important;
}
.swagger-ui .btn.cancel {
  color: var(--neon-orange) !important;
  background: transparent !important;
  border-color: var(--neon-orange) !important;
}
.swagger-ui .btn:not(.authorize):not(.cancel) {
  color: var(--text-secondary) !important;
  background: transparent !important;
  border-color: var(--spork-graphite) !important;
}

/* Inputs */
.swagger-ui input[type=text],
.swagger-ui input[type=password],
.swagger-ui textarea {
  background: var(--spork-iron) !important;
  border-color: var(--spork-graphite) !important;
  color: var(--text-emphasis) !important;
}
.swagger-ui input::placeholder,
.swagger-ui textarea::placeholder {
  color: var(--text-muted) !important;
}

/* Auth / authorize – modal and containers */
.swagger-ui .auth-wrapper {
  color: var(--text-primary) !important;
}
/* Authorization modal – dark theme to match Explorer */
.swagger-ui .dialog-ux-backdrop,
.swagger-ui [class*="backdrop"] {
  background: rgba(0, 0, 0, 0.75) !important;
}
.swagger-ui .dialog-ux-modal,
.swagger-ui [class*="dialog-ux"],
.swagger-ui [class*="dialog"] [class*="modal"],
body .dialog-ux-modal,
div[role="dialog"] {
  background: var(--spork-carbon) !important;
  border: 1px solid var(--spork-iron) !important;
  border-radius: 12px !important;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5) !important;
  color: var(--text-primary) !important;
}
.swagger-ui .dialog-ux-modal-content,
.swagger-ui [class*="dialog"] [class*="content"] {
  color: var(--text-primary) !important;
}
.swagger-ui [class*="dialog"] h3,
.swagger-ui [class*="dialog"] h4,
body [class*="dialog"] h3,
div[role="dialog"] h3 {
  color: var(--text-emphasis) !important;
  font-family: "Syne", "Segoe UI", sans-serif !important;
  font-weight: 600 !important;
}
.swagger-ui .auth-container {
  background: var(--spork-iron) !important;
  border: 1px solid var(--spork-graphite) !important;
  border-radius: 8px !important;
  padding: 16px !important;
  margin-bottom: 12px !important;
}
.swagger-ui .auth-container h4 {
  color: var(--neon-green) !important;
  font-family: "Syne", "Segoe UI", sans-serif !important;
  font-size: 1rem !important;
  margin-bottom: 8px !important;
}
.swagger-ui .auth-container p,
.swagger-ui .auth-container span,
.swagger-ui .auth-container label {
  color: var(--text-primary) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}
.swagger-ui .auth-container input {
  background: var(--spork-obsidian) !important;
  border: 1px solid var(--spork-graphite) !important;
  border-radius: 6px !important;
  color: var(--text-emphasis) !important;
  padding: 8px 12px !important;
  margin-top: 4px !important;
}
.swagger-ui .auth-container .auth-container {
  margin-top: 16px;
  border-top: 1px solid var(--spork-graphite);
  padding-top: 16px;
}
/* Modal buttons */
.swagger-ui [class*="dialog"] .btn.authorize,
.swagger-ui [class*="dialog"] .authorize {
  background: var(--neon-green) !important;
  color: var(--spork-obsidian) !important;
  border-color: var(--neon-green) !important;
  border-radius: 8px !important;
  padding: 8px 20px !important;
}
.swagger-ui [class*="dialog"] .btn.cancel,
.swagger-ui [class*="dialog"] .btn-done,
.swagger-ui [class*="dialog"] [class*="close"] {
  color: var(--text-secondary) !important;
  border-color: var(--spork-graphite) !important;
  background: transparent !important;
  border-radius: 8px !important;
}
.swagger-ui [class*="dialog"] svg {
  fill: var(--text-secondary) !important;
}
.swagger-ui [class*="dialog"] .btn.authorize svg {
  fill: var(--spork-obsidian) !important;
}

/* Scheme container – dark theme */
.swagger-ui .scheme-container,
.swagger-ui .information-container {
  background: var(--spork-carbon) !important;
  border-bottom: 1px solid var(--spork-iron) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
  color: var(--text-primary) !important;
}
.swagger-ui .scheme-container .schemes-server-container label,
.swagger-ui .scheme-container .schemes label,
.swagger-ui .scheme-container label,
.swagger-ui .information-container label {
  color: var(--text-secondary) !important;
}
.swagger-ui .scheme-container select,
.swagger-ui .information-container select {
  background: var(--spork-iron) !important;
  border-color: var(--spork-graphite) !important;
  color: var(--text-emphasis) !important;
}
.swagger-ui .scheme-container .auth-wrapper,
.swagger-ui .information-container .auth-wrapper {
  color: var(--text-primary) !important;
}
.swagger-ui .scheme-container svg,
.swagger-ui .information-container svg {
  fill: var(--text-secondary) !important;
}

/* Servers */
.swagger-ui .servers > label {
  color: var(--text-secondary) !important;
}
.swagger-ui .servers .computed-url,
.swagger-ui .server-container {
  background: var(--spork-carbon) !important;
  border-color: var(--spork-iron) !important;
  color: var(--text-emphasis) !important;
}

/* Code blocks */
.swagger-ui .highlight-code {
  background: var(--spork-iron) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}
.swagger-ui pre {
  background: var(--spork-iron) !important;
  border-color: var(--spork-graphite) !important;
  color: var(--text-primary) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}

/* Section headers */
.swagger-ui section.models h4,
.swagger-ui .opblock-section-header {
  background: var(--spork-carbon) !important;
  border-color: var(--spork-iron) !important;
  color: var(--text-primary) !important;
  font-size: 15px !important;
}
.swagger-ui .opblock-section-header h4 {
  color: var(--neon-blue) !important;
}

/* Opblock body – semantic colors */
.swagger-ui .opblock-body,
.swagger-ui .opblock-description-wrapper,
.swagger-ui .opblock-external-docs-wrapper {
  color: var(--text-primary) !important;
}
.swagger-ui .opblock-body p,
.swagger-ui .opblock-description-wrapper p {
  color: var(--text-secondary) !important;
}
.swagger-ui .opblock-title_normal {
  color: var(--text-muted) !important;
}
/* Parameters: names = emphasis, types = muted teal, descriptions = secondary */
.swagger-ui .parameter__name,
.swagger-ui table .parameter__name {
  color: var(--text-emphasis) !important;
}
.swagger-ui .parameter__type,
.swagger-ui .parameter__in {
  color: var(--neon-teal) !important;
}
.swagger-ui .parameter-wrap .renderedMarkdown p,
.swagger-ui .parameter__deprecated {
  color: var(--text-secondary) !important;
}
.swagger-ui .parameter__name .required {
  color: var(--neon-red) !important;
}
.swagger-ui .opblock-body td,
.swagger-ui .opblock-body th {
  color: var(--text-primary) !important;
}

/* Responses */
.swagger-ui .responses-inner h4 {
  color: var(--text-primary) !important;
}
.swagger-ui .responses-table td,
.swagger-ui .responses-inner p,
.swagger-ui .responses-inner span {
  color: var(--text-primary) !important;
  font-size: 15px !important;
}
.swagger-ui .response-col_description {
  color: var(--text-primary) !important;
}
.swagger-ui .response__model {
  color: var(--neon-teal) !important;
}

/* Try it out */
.swagger-ui .try-out__btn {
  color: var(--neon-blue) !important;
}

/* Filter / search */
.swagger-ui .filter-container {
  border-color: var(--spork-iron) !important;
}
.swagger-ui .filter .operation-filter-input {
  border-color: var(--spork-graphite) !important;
  background: var(--spork-iron) !important;
  color: var(--text-emphasis) !important;
}

/* Tab links */
.swagger-ui .tab li {
  color: var(--text-secondary) !important;
  font-size: 15px !important;
}
.swagger-ui .tab li.active {
  color: var(--neon-blue) !important;
  border-color: var(--neon-blue) !important;
}

/* Errors */
.swagger-ui .errors-wrapper {
  background: rgba(255, 68, 68, 0.15) !important;
  border-color: var(--neon-red) !important;
  color: var(--text-primary) !important;
}

/* Loading */
.swagger-ui .loading-container {
  color: var(--neon-blue) !important;
}

/* Icons */
.swagger-ui .opblock-summary svg,
.swagger-ui .opblock-section-header svg,
.swagger-ui .expand-operation svg,
.swagger-ui .copy-to-clipboard svg {
  fill: var(--text-primary) !important;
}
.swagger-ui .btn.authorize svg {
  fill: var(--spork-obsidian) !important;
}
.swagger-ui .auth-container .locked svg {
  fill: var(--neon-green) !important;
}
