/* ──────────────────────────────────────────────────────────────────────────
   Swagger UI con el lenguaje visual de robexia.com.

   Mismos tokens que la home (R:\Proyectos\WEB_ROBEXIA_2026\index.html) y que
   la hoja de producto: Inter, azul marino #0A2540, azul de accion #2D7FF9,
   turquesa #00C2C7, cards de 16px con sombra suave y botones de pildora en
   mayusculas.

   Se carga con `swagger_css_url` DESPUES del CSS de Swagger, asi que basta con
   ganar en especificidad; solo se usa !important donde Swagger pinta en linea
   o con selectores muy anidados (los metodos HTTP, sobre todo).
   ────────────────────────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
  --rx-primary:  #0A2540;
  --rx-second:   #5A6B82;
  --rx-blue:     #2D7FF9;
  --rx-blue-dk:  #1A5FD0;
  --rx-accent:   #00C2C7;
  --rx-neutral:  #F4F7FB;
  --rx-surface:  #FFFFFF;
  --rx-border:   #D8E0EC;
  --rx-border-s: #E8EDF4;
  --rx-green:    #1DB87A;
}

body { background: var(--rx-neutral); }
/* sin topbar no hace falta el hueco que Swagger deja encima */
.swagger-ui { padding-top: 0; }
.swagger-ui > .wrapper:first-child:empty { display: none; }
/* Swagger mete al principio un <div> con un <svg> de definiciones que deberia
   medir cero y aqui se renderiza con 150px de alto: dejaba una franja clara
   encima de la cabecera azul. Se selecciona por estructura -- un div cuyo
   unico hijo es ese svg -- para no tocar ningun icono de verdad. */
.swagger-ui > div:first-child > svg:only-child { display: none; }

.swagger-ui, .swagger-ui .info li, .swagger-ui .info p,
.swagger-ui .info table, .swagger-ui .opblock-tag,
.swagger-ui .opblock .opblock-summary-description,
.swagger-ui .parameter__name, .swagger-ui table thead tr th,
.swagger-ui .btn, .swagger-ui select, .swagger-ui input {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI',
               Roboto, sans-serif;
  color: var(--rx-primary);
}

/* La barra verde de Swagger fuera: la cabecera la ponemos nosotros */
.swagger-ui .topbar { display: none; }

/* ── CABECERA ─────────────────────────────────────────────────────────── */
/* La cabecera es un .wrapper mas, asi que hereda el ancho maximo y el padding
   de la regla de abajo y el azul quedaba metido en una caja. Se saca a sangre
   completa y se centra el contenido por dentro. */
.swagger-ui .information-container.wrapper { max-width: none; padding: 0; }
.swagger-ui .information-container {
  background: var(--rx-primary);
  padding: 56px 0 44px;
  margin-bottom: 32px;
}
.swagger-ui .information-container .info { margin: 0 auto; max-width: 1160px;
  padding: 0 32px; }
.swagger-ui .info .title,
.swagger-ui .info .title small,
.swagger-ui .info .title small pre {
  color: #fff;
}
.swagger-ui .info .title {
  font-size: 38px; font-weight: 700; letter-spacing: -0.02em;
  margin-bottom: 6px;
}
/* Las etiquetas de version son <small> con un <pre> DENTRO, y el pre es de
   bloque: sin desactivarlo salen dos barras del ancho de la pagina en vez de
   dos pildoras. */
.swagger-ui .info .title > span {
  display: inline-flex; gap: 8px; vertical-align: middle; margin-left: 12px;
}
.swagger-ui .info .title small {
  display: inline-block; width: auto; min-width: 0;
  background: rgba(255,255,255,0.14);
  border-radius: 9999px; padding: 4px 12px; font-size: 11px;
  font-weight: 600; letter-spacing: 0.06em; vertical-align: middle;
}
.swagger-ui .info .title small pre.version {
  display: inline; background: none; border: none; box-shadow: none;
  margin: 0; padding: 0; font-size: 11px; font-weight: 600;
  font-family: 'Inter', sans-serif; color: #fff; line-height: 1;
}
.swagger-ui .info .title small.version-stamp { background: var(--rx-accent); }
.swagger-ui .info .title small.version-stamp pre.version {
  color: var(--rx-primary);
}
.swagger-ui .information-container .info p,
.swagger-ui .information-container .info li,
.swagger-ui .information-container .info td {
  color: rgba(255,255,255,0.76); font-size: 15.5px; line-height: 1.65;
}
.swagger-ui .information-container .info h3,
.swagger-ui .information-container .info h4 {
  color: #fff; font-size: 17px; font-weight: 600;
  margin: 26px 0 8px; letter-spacing: -0.01em;
}
.swagger-ui .information-container .info a { color: var(--rx-accent); }
.swagger-ui .information-container .info code {
  background: rgba(255,255,255,0.10); color: #EAF2FE;
  border-radius: 6px; padding: 2px 7px; font-size: 13px;
}
.swagger-ui .information-container .info pre {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 12px; padding: 16px 18px; color: #DCE7F3;
}
.swagger-ui .information-container .info pre code { background: none;
  padding: 0; }
.swagger-ui .info .base-url,
.swagger-ui .info hgroup.main a { color: rgba(255,255,255,0.55); }

/* ── ESQUEMA / SERVIDORES / AUTORIZAR ─────────────────────────────────── */
.swagger-ui .scheme-container {
  background: transparent; box-shadow: none;
  max-width: 1160px; margin: 0 auto; padding: 0 32px 20px;
}
.swagger-ui .btn.authorize {
  background: var(--rx-blue); border: none; color: #fff;
  border-radius: 9999px; padding: 11px 22px;
  font-size: 12px; font-weight: 600; letter-spacing: 0.08em;
  text-transform: uppercase; box-shadow: none;
}
.swagger-ui .btn.authorize:hover { background: var(--rx-blue-dk); }
.swagger-ui .btn.authorize svg { fill: #fff; }

/* ── BLOQUES POR ETIQUETA ─────────────────────────────────────────────── */
.swagger-ui .wrapper { max-width: 1160px; padding: 0 32px; }
.swagger-ui .opblock-tag {
  border-bottom: none; font-size: 22px; font-weight: 700;
  letter-spacing: -0.01em; margin: 34px 0 12px; padding: 0;
}
.swagger-ui .opblock-tag small {
  color: var(--rx-second); font-size: 14px; font-weight: 400;
  padding-left: 14px;
}

/* ── OPERACIONES ──────────────────────────────────────────────────────── */
.swagger-ui .opblock {
  background: var(--rx-surface) !important;
  border: 1px solid var(--rx-border-s) !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 3px rgba(10,37,64,0.04),
              0 8px 24px rgba(10,37,64,0.05) !important;
  margin: 0 0 14px;
}
.swagger-ui .opblock .opblock-summary { border-bottom: none; padding: 6px 10px; }
.swagger-ui .opblock.is-open .opblock-summary {
  border-bottom: 1px solid var(--rx-border-s);
}
.swagger-ui .opblock .opblock-summary-method {
  background: var(--rx-blue) !important;
  border-radius: 9999px; font-family: 'Inter', sans-serif;
  font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
  min-width: 74px; text-shadow: none; box-shadow: none; padding: 8px 0;
}
.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-path__deprecated {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 14.5px; font-weight: 600; color: var(--rx-primary);
}
.swagger-ui .opblock .opblock-summary-description {
  color: var(--rx-second); font-size: 14.5px;
}
.swagger-ui .opblock.opblock-get { border-color: var(--rx-border-s); }
.swagger-ui .opblock.opblock-get .opblock-summary { border-color: transparent; }

/* ── PARAMETROS Y RESPUESTAS ──────────────────────────────────────────── */
.swagger-ui .opblock-section-header {
  background: var(--rx-neutral); box-shadow: none;
  border-radius: 10px; padding: 10px 16px; margin-bottom: 8px;
}
.swagger-ui .opblock-section-header h4,
.swagger-ui .tab li button.tablinks {
  font-size: 12px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--rx-second);
}
.swagger-ui table thead tr th {
  border-bottom: 1px solid var(--rx-border-s);
  font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--rx-second); font-weight: 600;
}
.swagger-ui .parameter__name { font-weight: 600; font-size: 14.5px; }
.swagger-ui .parameter__name.required span { color: #E5484D; }
.swagger-ui .parameter__type {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color: var(--rx-blue-dk); font-size: 12px;
}
.swagger-ui .response-col_status { font-weight: 600; }
.swagger-ui .responses-inner { padding: 14px 0 4px; }

/* ── BOTONES DE ACCION ────────────────────────────────────────────────── */
.swagger-ui .btn {
  border-radius: 9999px; font-size: 12px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase; box-shadow: none;
}
.swagger-ui .btn.execute {
  background: var(--rx-blue); border-color: var(--rx-blue); color: #fff;
}
.swagger-ui .btn.execute:hover { background: var(--rx-blue-dk); }
.swagger-ui .btn.try-out__btn {
  border-color: var(--rx-border); color: var(--rx-primary);
}
.swagger-ui .btn.try-out__btn:hover { border-color: var(--rx-primary); }
.swagger-ui .btn.cancel { border-color: var(--rx-border); color: var(--rx-second); }

/* ── CAJAS DE CODIGO ──────────────────────────────────────────────────── */
.swagger-ui .highlight-code > .microlight,
.swagger-ui .curl-command .curl,
.swagger-ui textarea {
  background: var(--rx-primary) !important;
  border-radius: 12px; font-size: 13px; line-height: 1.6;
}
.swagger-ui .microlight code, .swagger-ui .microlight {
  color: #E7EEF7 !important;
}
.swagger-ui .model-box, .swagger-ui section.models {
  background: var(--rx-surface); border: 1px solid var(--rx-border-s);
  border-radius: 16px;
}
.swagger-ui section.models .model-container { background: transparent; }
.swagger-ui section.models h4 {
  font-size: 18px; font-weight: 700; color: var(--rx-primary);
}
.swagger-ui .model-title { color: var(--rx-primary); font-weight: 600; }
.swagger-ui .prop-type { color: var(--rx-blue-dk); }

/* ── PIE ──────────────────────────────────────────────────────────────── */
.rx-pie {
  max-width: 1160px; margin: 48px auto 0; padding: 24px 32px 40px;
  border-top: 1px solid var(--rx-border);
  color: var(--rx-second); font-size: 13.5px;
  font-family: 'Inter', sans-serif;
  display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.rx-pie a { color: var(--rx-blue); text-decoration: none; }

@media (max-width: 760px) {
  .swagger-ui .info .title { font-size: 28px; }
  .swagger-ui .information-container { padding: 40px 0 32px; }
}
