/* =====================================================================
   Enterprise theme for Swagger UI (RAMPS API)
   Rebrand by editing the CSS variables in :root — colors, radius, fonts.
   All styling layers on top of the stock swagger-ui.css (loaded first).
   ===================================================================== */
:root {
  --brand: #0b2a4a;          /* deep navy — header + headings           */
  --brand-2: #123a63;        /* navy gradient stop                       */
  --accent: #1e6fd9;         /* primary blue — buttons, links, focus     */
  --accent-strong: #1857ad;
  --bg: #f5f7fa;             /* page background                          */
  --panel: #ffffff;
  --border: #e2e8f0;
  --text: #1a2433;
  --muted: #5b6b7f;
  --radius: 10px;
  --font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --mono: "SFMono-Regular", ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace;
}

body { background: var(--bg); margin: 0; }

/* ---- custom top header (rendered by our /docs template) ---- */
.api-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 14px 28px;
  background: linear-gradient(90deg, var(--brand), var(--brand-2));
  color: #fff; position: sticky; top: 0; z-index: 40;
  box-shadow: 0 1px 0 rgba(0,0,0,.15);
}
.api-header__brand { display: flex; align-items: center; gap: 12px; }
.api-header__brand svg { display: block; }
.api-header__title { font-family: var(--font); font-weight: 700; font-size: 16px; letter-spacing: .2px; }
.api-header__title small { display:block; font-weight: 500; font-size: 11px; opacity: .8; letter-spacing:.3px; }
.env-badge {
  font-family: var(--font); font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .5px; padding: 3px 9px; border-radius: 999px;
  background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.25);
}
.api-header__nav { display: flex; align-items: center; gap: 18px; }
.api-header__nav a {
  color: #eaf2ff; text-decoration: none; font-family: var(--font);
  font-size: 13px; font-weight: 600; opacity: .92;
}
.api-header__nav a:hover { opacity: 1; text-decoration: underline; }

/* ---- typography ---- */
.swagger-ui, .swagger-ui .info, .swagger-ui .opblock-tag, .swagger-ui .btn,
.swagger-ui select, .swagger-ui label, .swagger-ui .parameter__name { font-family: var(--font) !important; }
.swagger-ui .microlight, .swagger-ui .prop-type { font-family: var(--mono) !important; }
.swagger-ui { color: var(--text); }

/* ---- info / description block ---- */
.swagger-ui .info { margin: 28px 0; }
.swagger-ui .info .title { color: var(--brand); font-weight: 800; }
.swagger-ui .info .title small.version-stamp,
.swagger-ui .info .title small { background: var(--accent); }
.swagger-ui .info a { color: var(--accent); }
.swagger-ui .info h1, .swagger-ui .info h2, .swagger-ui .info h3 { color: var(--brand); }
.swagger-ui .info table { border-collapse: collapse; }
.swagger-ui .info td, .swagger-ui .info th { border: 1px solid var(--border); padding: 6px 10px; }
.swagger-ui .info th { background: #eef2f7; }

/* keep the whole thing in a comfortable reading column */
.swagger-ui .wrapper { max-width: 1180px; }

/* ---- scheme / auth bar ---- */
.swagger-ui .scheme-container {
  background: var(--panel); box-shadow: none; border: 1px solid var(--border);
  border-radius: var(--radius); margin: 0 0 24px; padding: 16px 20px;
}

/* ---- buttons ---- */
.swagger-ui .btn { border-radius: 8px; font-weight: 600; box-shadow: none; }
.swagger-ui .btn.authorize {
  background: var(--accent); color: #fff; border-color: var(--accent);
}
.swagger-ui .btn.authorize svg { fill: #fff; }
.swagger-ui .btn.authorize:hover { background: var(--accent-strong); border-color: var(--accent-strong); }
.swagger-ui .btn.execute { background: var(--brand); border-color: var(--brand); color: #fff; }
.swagger-ui .btn.execute:hover { background: var(--brand-2); }

/* ---- operation blocks: refined cards ---- */
.swagger-ui .opblock {
  border-radius: var(--radius); border: 1px solid var(--border);
  box-shadow: 0 1px 2px rgba(16,24,40,.04); margin: 0 0 14px;
}
.swagger-ui .opblock .opblock-summary { border-radius: var(--radius); }
.swagger-ui .opblock .opblock-summary-method {
  border-radius: 7px; font-weight: 700; min-width: 74px; text-align: center;
}
.swagger-ui .opblock-tag {
  border: none; font-size: 19px; font-weight: 700; color: var(--brand);
  border-bottom: 1px solid var(--border);
}
.swagger-ui .opblock-tag small { color: var(--muted); font-weight: 500; }

/* method accent colors (kept semantic, just cleaner) */
.swagger-ui .opblock.opblock-get { background: #f2f8ff; border-color: #cfe3fb; }
.swagger-ui .opblock.opblock-get .opblock-summary-method { background: var(--accent); }
.swagger-ui .opblock.opblock-post { background: #f1faf4; border-color: #cdeed7; }
.swagger-ui .opblock.opblock-post .opblock-summary-method { background: #1a9e57; }
.swagger-ui .opblock.opblock-put { background: #fff8ee; border-color: #f6e2c0; }
.swagger-ui .opblock.opblock-put .opblock-summary-method { background: #d98c14; }
.swagger-ui .opblock.opblock-delete { background: #fff5f5; border-color: #f6cccc; }
.swagger-ui .opblock.opblock-delete .opblock-summary-method { background: #d64545; }

/* ---- tables / models ---- */
.swagger-ui .responses-inner, .swagger-ui .opblock-section-header { background: transparent; }
.swagger-ui .opblock-section-header { box-shadow: none; border-top: 1px solid var(--border); }
.swagger-ui table thead tr th { color: var(--muted); border-color: var(--border); }
.swagger-ui .response-col_status { color: var(--brand); font-weight: 700; }

/* ---- focus / inputs ---- */
.swagger-ui input[type=text], .swagger-ui textarea, .swagger-ui select {
  border-radius: 8px; border: 1px solid var(--border);
}
.swagger-ui .filter .operation-filter-input { border-radius: 8px; border: 1px solid var(--border); }

/* ---- footer spacer ---- */
.swagger-ui .wrapper:last-child { padding-bottom: 60px; }
