/* =========================================================
   API — Swagger UI (corporate theme)
   Goals:
   - High readability (larger base type, stronger contrast)
   - Corporate palette (navy + steel blue + cool greys)
   - Swagger UI 5 friendly selectors
========================================================= */

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap");

:root {
  /* Brand */
  --corp-navy-950: #071a33;
  --corp-navy-900: #0b2a52;
  --corp-navy-800: #0f3a6d;
  --corp-blue-700: #1f5fbf;
  --corp-blue-600: #2f6fe0;

  /* Neutrals */
  --corp-bg: #f3f6fb;
  --corp-surface: #ffffff;
  --corp-border: #d7e0ee;
  --corp-muted: #5b6b82;
  --corp-text: #0f172a;

  /* Accents */
  --corp-success: #0f766e;
  --corp-warn: #b45309;
  --corp-danger: #b42318;

  /* Radii */
  --corp-radius: 10px;
}

html,
body {
  height: 100%;
}

body {
  margin: 0;
  background: var(--corp-bg);
  color: var(--corp-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.swagger-ui {
  font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  color: var(--corp-text);
}

.swagger-ui .wrapper {
  max-width: 1180px;
}

.swagger-ui a {
  color: var(--corp-blue-700);
  font-weight: 600;
}

.swagger-ui a:hover {
  color: var(--corp-blue-600);
}

/* Top bar */
.swagger-ui .topbar {
  background: linear-gradient(90deg, var(--corp-navy-950), var(--corp-navy-800));
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  padding: 14px 0;
}

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

.swagger-ui .topbar-wrapper::before {
  content: "API — Swagger UI";
  color: #f8fafc;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.2px;
}

.swagger-ui .topbar .download-url-wrapper input[type="text"] {
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.08);
  color: #f8fafc;
}

.swagger-ui .topbar .download-url-wrapper .download-url-button {
  background: var(--corp-blue-600);
  border-color: var(--corp-blue-600);
  border-radius: 10px;
}

/* Info header */
.swagger-ui .info {
  margin: 22px 0 10px;
}

.swagger-ui .info .title {
  font-size: 34px;
  line-height: 1.15;
  font-weight: 900;
  color: var(--corp-navy-900);
}

.swagger-ui .info .base-url,
.swagger-ui .info hgroup.main a {
  font-size: 15px;
}

.swagger-ui .info .description,
.swagger-ui .info p,
.swagger-ui .info li {
  font-size: 16px;
  line-height: 1.65;
  color: #1b2b45;
}

/* Scheme bar */
.swagger-ui .scheme-container {
  background: var(--corp-surface);
  border: 1px solid var(--corp-border);
  border-radius: var(--corp-radius);
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
  padding: 14px 14px 10px;
}

.swagger-ui .scheme-container label {
  font-weight: 700;
  color: #22324d;
}

.swagger-ui select {
  font-size: 15px;
  border-radius: 8px;
  border: 1px solid var(--corp-border);
  padding: 8px 10px;
  background: #fbfcff;
}

/* Section titles */
.swagger-ui .opblock-tag {
  font-size: 18px;
  font-weight: 900;
  color: var(--corp-navy-900);
  border-bottom: 1px solid var(--corp-border);
  padding: 18px 0 10px;
  margin: 18px 0 10px;
}

.swagger-ui .opblock-tag small {
  font-size: 14px;
  color: var(--corp-muted);
  font-weight: 600;
}

/* Operation blocks */
.swagger-ui .opblock {
  border-radius: var(--corp-radius);
  border: 1px solid var(--corp-border);
  background: var(--corp-surface);
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06);
  margin: 14px 0;
}

.swagger-ui .opblock-summary {
  font-weight: 750;
}

.swagger-ui .opblock-summary-path,
.swagger-ui .opblock-summary-path__deprecated {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco,
    Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 15px;
}

/* POST */
.swagger-ui .opblock.opblock-post {
  border-color: #b9d3ff;
}

.swagger-ui .opblock.opblock-post .opblock-summary {
  border-color: #b9d3ff;
}

.swagger-ui .opblock.opblock-post .opblock-summary-method {
  background: var(--corp-blue-600);
  color: #ffffff;
  font-weight: 900;
}

/* GET */
.swagger-ui .opblock.opblock-get .opblock-summary-method {
  background: #1d4ed8;
  color: #ffffff;
  font-weight: 900;
}

/* DELETE */
.swagger-ui .opblock.opblock-delete .opblock-summary-method {
  background: var(--corp-danger);
  color: #ffffff;
  font-weight: 900;
}

/* Tables / parameters */
.swagger-ui table thead tr th,
.swagger-ui table thead tr td {
  color: #0b2a52;
  font-weight: 900;
  font-size: 14px;
  border-bottom: 1px solid var(--corp-border);
  background: #eef3fb;
}

.swagger-ui table tbody tr td {
  font-size: 15px;
  border-top: 1px solid #e8eef8;
}

.swagger-ui .parameter__name {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco,
    Consolas, "Liberation Mono", "Courier New", monospace;
  font-weight: 800;
  color: #0b2a52;
}

.swagger-ui .parameter__type {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco,
    Consolas, "Liberation Mono", "Courier New", monospace;
  color: #334155;
  font-weight: 700;
}

/* Responses */
.swagger-ui .responses-inner {
  background: #fbfcff;
  border-top: 1px solid var(--corp-border);
}

.swagger-ui .response-col_status {
  font-weight: 900;
}

/* Code blocks */
.swagger-ui pre,
.swagger-ui code {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco,
    Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 14px;
  line-height: 1.55;
}

.swagger-ui .microlight,
.swagger-ui .highlight-code {
  background: #0b1220 !important;
  color: #e8eefc !important;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
}

/* Buttons */
.swagger-ui .btn {
  border-radius: 10px;
  font-weight: 800;
  font-size: 15px;
}

.swagger-ui .btn.execute {
  background: var(--corp-blue-600);
  border-color: var(--corp-blue-600);
  color: #ffffff;
}

.swagger-ui .btn.execute:hover {
  background: var(--corp-blue-700);
  border-color: var(--corp-blue-700);
}

.swagger-ui .btn.authorize {
  background: transparent;
  border-color: var(--corp-blue-600);
  color: var(--corp-blue-700);
}

.swagger-ui .btn.authorize:hover {
  background: rgba(47, 111, 224, 0.08);
}

.swagger-ui .btn.cancel {
  border-color: var(--corp-border);
}

/* Models */
.swagger-ui section.models {
  border: 1px solid var(--corp-border);
  border-radius: var(--corp-radius);
  background: var(--corp-surface);
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
}

.swagger-ui section.models h4 {
  font-weight: 900;
  color: var(--corp-navy-900);
}
