/*
 * Tema oscuro forzado para Swagger UI.
 * Usa la misma paleta que la app (clientes.voltcorps.com) en su modo oscuro.
 * No hay conmutador de tema: la documentación se ve siempre así.
 */

:root {
  --bg: #0f100f;
  --surf: #191a18;
  --surf2: #212220;
  --line: #2c2e2b;
  --tx: #f2f0ea;
  --tx2: #9c9a92;
  --acc: #ff6b3d;
  --acc-tx: #1c0c05;

  --get: #22d3ee;
  --post: #4ade80;
  --put: #fbbf24;
  --patch: #a78bfa;
  --delete: #f87171;
}

html,
body {
  background: var(--bg) !important;
  color: var(--tx);
}

body,
.swagger-ui {
  font-family: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
}

.swagger-ui,
.swagger-ui .info .title,
.swagger-ui .info li,
.swagger-ui .info p,
.swagger-ui .info table,
.swagger-ui .opblock-tag,
.swagger-ui .opblock .opblock-summary-description,
.swagger-ui .opblock .opblock-summary-operation-id,
.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock-description-wrapper p,
.swagger-ui .opblock-external-docs-wrapper p,
.swagger-ui .opblock-title_normal p,
.swagger-ui .parameter__name,
.swagger-ui .parameter__type,
.swagger-ui .parameter__in,
.swagger-ui .response-col_status,
.swagger-ui .response-col_links,
.swagger-ui table thead tr td,
.swagger-ui table thead tr th,
.swagger-ui .tab li,
.swagger-ui label,
.swagger-ui .model-title,
.swagger-ui .model,
.swagger-ui section.models h4,
.swagger-ui .scheme-container .schemes-title,
.swagger-ui .btn,
.swagger-ui .dialog-ux .modal-ux-header h3,
.swagger-ui .dialog-ux .modal-ux-content h4,
.swagger-ui .dialog-ux .modal-ux-content p {
  color: var(--tx);
}

.swagger-ui .opblock-tag small,
.swagger-ui .parameter__extension,
.swagger-ui .parameter__in,
.swagger-ui .renderedMarkdown p,
.swagger-ui .info .base-url,
.swagger-ui .info .title small pre {
  color: var(--tx2) !important;
}

/* ---------- barra superior ---------- */
.swagger-ui .topbar {
  background: var(--surf) !important;
  border-bottom: 1px solid var(--line);
  padding: 12px 0;
}

.swagger-ui .topbar .download-url-wrapper {
  display: none;
}

/*
 * Swagger UI trae su propio conmutador claro/oscuro (la bombilla de la barra).
 * Aquí la documentación es oscura y punto, así que se oculta: si el usuario lo
 * pulsara, vería una mezcla de su tema claro con estos overrides.
 */
.swagger-ui .topbar .dark-mode-toggle {
  display: none !important;
}

/* ---------- cabecera ---------- */
.swagger-ui .info {
  margin: 32px 0 24px;
}

.swagger-ui .info .title {
  font-weight: 800;
  letter-spacing: -0.02em;
}

.swagger-ui .info .title small.version-stamp {
  background: var(--acc);
}

.swagger-ui .info a {
  color: var(--acc);
}

/* ---------- bloques de operaciones ---------- */
.swagger-ui .opblock-tag {
  border-bottom: 1px solid var(--line);
  font-weight: 800;
  letter-spacing: -0.01em;
}

.swagger-ui .opblock-tag:hover {
  background: var(--surf);
}

.swagger-ui .opblock {
  background: var(--surf);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: none;
  margin: 0 0 12px;
}

.swagger-ui .opblock .opblock-summary {
  border-bottom-color: var(--line);
}

.swagger-ui .opblock.opblock-get { border-color: var(--get); background: rgba(34, 211, 238, 0.06); }
.swagger-ui .opblock.opblock-post { border-color: var(--post); background: rgba(74, 222, 128, 0.06); }
.swagger-ui .opblock.opblock-put { border-color: var(--put); background: rgba(251, 191, 36, 0.06); }
.swagger-ui .opblock.opblock-patch { border-color: var(--patch); background: rgba(167, 139, 250, 0.06); }
.swagger-ui .opblock.opblock-delete { border-color: var(--delete); background: rgba(248, 113, 113, 0.06); }

.swagger-ui .opblock.opblock-get .opblock-summary-method { background: var(--get); color: #06232a; }
.swagger-ui .opblock.opblock-post .opblock-summary-method { background: var(--post); color: #06240f; }
.swagger-ui .opblock.opblock-put .opblock-summary-method { background: var(--put); color: #2a1c00; }
.swagger-ui .opblock.opblock-patch .opblock-summary-method { background: var(--patch); color: #1c0f33; }
.swagger-ui .opblock.opblock-delete .opblock-summary-method { background: var(--delete); color: #2c0707; }

.swagger-ui .opblock-summary-method {
  border-radius: 8px;
  font-weight: 800;
}

.swagger-ui .opblock-body,
.swagger-ui .opblock-section-header {
  background: var(--surf2) !important;
  border-color: var(--line);
}

.swagger-ui .opblock-section-header h4,
.swagger-ui .opblock-section-header > label {
  color: var(--tx);
}

/* ---------- tablas, campos y bloques de código ---------- */
.swagger-ui table thead tr td,
.swagger-ui table thead tr th {
  border-bottom-color: var(--line);
}

.swagger-ui .parameters-col_description input[type="text"],
.swagger-ui input[type="email"],
.swagger-ui input[type="file"],
.swagger-ui input[type="password"],
.swagger-ui input[type="search"],
.swagger-ui input[type="text"],
.swagger-ui textarea,
.swagger-ui select {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--tx);
}

.swagger-ui textarea:focus,
.swagger-ui input:focus,
.swagger-ui select:focus {
  border-color: var(--acc);
  outline: none;
}

.swagger-ui .highlight-code > .microlight,
.swagger-ui .model-example,
.swagger-ui pre,
.swagger-ui .body-param__example,
.swagger-ui .responses-inner pre {
  background: #0b0c0b !important;
  color: #d7d3c8 !important;
  border-radius: 10px;
}

.swagger-ui .microlight code {
  color: #d7d3c8 !important;
}

/* ---------- botones ---------- */
.swagger-ui .btn {
  background: var(--surf2);
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--tx);
  font-weight: 700;
}

.swagger-ui .btn:hover {
  border-color: var(--acc);
}

/* Swagger colorea estos dos botones con reglas propias más específicas: hacen
   falta !important para que el naranja de la marca gane. */
.swagger-ui .btn.execute,
.swagger-ui .btn.authorize,
.swagger-ui .auth-wrapper .btn.authorize {
  background: var(--acc) !important;
  border-color: var(--acc) !important;
  color: var(--acc-tx) !important;
}

.swagger-ui .btn.authorize svg,
.swagger-ui .auth-wrapper .btn.authorize svg {
  fill: var(--acc-tx) !important;
}

.swagger-ui .btn.cancel {
  background: transparent;
  border-color: var(--delete);
  color: var(--delete);
}

/* ---------- modelos y esquemas ---------- */
.swagger-ui section.models {
  background: var(--surf);
  border: 1px solid var(--line);
  border-radius: 14px;
}

.swagger-ui section.models .model-container {
  background: var(--surf2);
  border-radius: 10px;
}

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

.swagger-ui .prop-type { color: var(--patch); }
.swagger-ui .prop-format { color: var(--tx2); }
.swagger-ui .model .property.primitive { color: var(--tx2); }

/* ---------- selector de servidor y modales ---------- */
.swagger-ui .scheme-container {
  background: var(--surf);
  border-bottom: 1px solid var(--line);
  box-shadow: none;
}

.swagger-ui .dialog-ux .modal-ux {
  background: var(--surf);
  border: 1px solid var(--line);
  border-radius: 14px;
}

.swagger-ui .dialog-ux .modal-ux-header {
  border-bottom-color: var(--line);
}

.swagger-ui .auth-container {
  border-color: var(--line);
}

/* ---------- iconos e íconos SVG ---------- */
.swagger-ui svg:not(:root) {
  fill: var(--tx2);
}

.swagger-ui .expand-methods svg,
.swagger-ui .expand-operation svg {
  fill: var(--tx2);
}

/* ---------- respuestas ---------- */
.swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5 {
  color: var(--tx);
}

.swagger-ui .response-control-media-type--accept-controller select {
  border-color: var(--post);
}

.swagger-ui .live-responses-table .response > td.response-col_status {
  color: var(--post);
}

/* ---------- barra de scroll ---------- */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--line); border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: var(--tx2); }
