/* ==========================================================================
   SWAGGER UI THEME - Motus Branding Overlay
   ========================================================================== */

/* === GLOBAL OVERRIDES === */
.swagger-ui {
  font-family: var(--font-family-base);
  color: var(--color-text-primary);
}

/* === HIDE DEFAULT TOPBAR === */
.swagger-ui .topbar {
  display: none !important;
}

/* === HIDE STANDALONE LAYOUT TOPBAR (URL Selector) === */
.swagger-ui .topbar-wrapper,
.swagger-ui .download-url-wrapper {
  display: none !important;
}

/* === INFORMATION CONTAINER (top section) === */
.swagger-ui .information-container {
  padding: var(--space-lg) 0;
}

/* === TITLE WITH VERSION - inline display === */
.swagger-ui .info hgroup.main {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.swagger-ui .info hgroup.main a {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  text-decoration: none;
}

/* Fix pre element that sometimes contains version */
.swagger-ui .info hgroup.main pre {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
}

/* === TYPOGRAPHY === */
.swagger-ui .opblock-tag,
.swagger-ui .opblock-tag small,
.swagger-ui .opblock .opblock-summary-description,
.swagger-ui .opblock-description-wrapper p,
.swagger-ui .parameter__type,
.swagger-ui .response-col_status,
.swagger-ui table thead tr th,
.swagger-ui table tbody tr td,
.swagger-ui .model-title,
.swagger-ui section.models h4,
.swagger-ui .info .title,
.swagger-ui .info p,
.swagger-ui label {
  font-family: var(--font-family-base);
}

.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-operation-id,
.swagger-ui code,
.swagger-ui .parameter__type,
.swagger-ui .prop-type,
.swagger-ui .model .property.primitive {
  font-family: var(--font-family-mono);
}

/* === INFO SECTION === */
.swagger-ui .info .title {
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
}

.swagger-ui .info .description p {
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
}

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

.swagger-ui .info a:hover {
  color: var(--color-primary-dark);
}

/* === BASE URL === */
.swagger-ui .info .base-url {
  font-family: var(--font-family-mono);
  font-size: var(--font-size-sm);
  color: var(--color-text-primary);
  font-weight: var(--font-weight-normal);
}

/* === SERVERS DROPDOWN === */
.swagger-ui .servers-title {
  font-size: var(--font-size-sm);
  color: var(--color-text-primary);
  font-weight: var(--font-weight-bold);
}

.swagger-ui .servers > label {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

.swagger-ui .servers > label select {
  font-family: var(--font-family-mono);
  font-size: var(--font-size-sm);
  color: var(--color-text-primary);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: var(--space-xs) var(--space-sm);
  background: var(--color-bg-primary);
}

/* Hide the computed URL display if redundant */
.swagger-ui .servers .computed-url {
  font-family: var(--font-family-mono);
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

/* === VERSION BADGE === */
.swagger-ui .info .version {
  background: var(--color-bg-tertiary);
  color: var(--color-text-primary);
  font-size: var(--font-size-xs);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-sm);
  font-weight: var(--font-weight-bold);
  display: inline-block;
  vertical-align: middle;
}

/* Version in pre tag - common Swagger UI structure */
.swagger-ui .info .version-stamp {
  background: var(--color-bg-tertiary);
  color: var(--color-text-primary);
  font-size: var(--font-size-xs);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-sm);
  font-weight: var(--font-weight-bold);
}

/* Small version text that appears next to title */
.swagger-ui .info .title small {
  background: var(--color-bg-tertiary);
  color: var(--color-text-primary);
  font-size: var(--font-size-xs);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-sm);
  font-weight: var(--font-weight-bold);
  margin-left: var(--space-sm);
  vertical-align: middle;
}

/* Version displayed as pre.version */
.swagger-ui .info pre.version {
  background: var(--color-bg-tertiary);
  color: var(--color-text-primary);
  font-size: var(--font-size-sm);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-sm);
  font-weight: var(--font-weight-bold);
  display: inline-block;
  margin: 0;
  font-family: var(--font-family-base);
}

/* === SECTION TAGS === */
.swagger-ui .opblock-tag {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
  border-bottom: 2px solid var(--color-border);
  padding: var(--space-md) 0;
  margin: 0;
}

.swagger-ui .opblock-tag:hover {
  background: var(--color-bg-secondary);
}

.swagger-ui .opblock-tag small {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

/* === OPERATION BLOCKS - BASE === */
.swagger-ui .opblock {
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  margin-bottom: var(--space-md);
}

.swagger-ui .opblock .opblock-summary {
  padding: var(--space-sm) var(--space-md);
}

.swagger-ui .opblock .opblock-summary-method {
  font-family: var(--font-family-base);
  font-weight: var(--font-weight-bold);
  border-radius: var(--radius-sm);
  min-width: 70px;
  text-align: center;
  padding: var(--space-xs) var(--space-sm);
}

.swagger-ui .opblock .opblock-summary-path {
  font-size: var(--font-size-sm);
}

.swagger-ui .opblock .opblock-summary-description {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

/* === OPERATION BLOCKS - GET === */
.swagger-ui .opblock.opblock-get {
  border-color: var(--color-http-get);
  background: rgba(0, 173, 239, 0.05);
}

.swagger-ui .opblock.opblock-get .opblock-summary-method {
  background: var(--color-http-get);
}

.swagger-ui .opblock.opblock-get .opblock-summary {
  border-color: var(--color-http-get);
}

/* === OPERATION BLOCKS - POST === */
.swagger-ui .opblock.opblock-post {
  border-color: var(--color-http-post);
  background: rgba(34, 197, 94, 0.05);
}

.swagger-ui .opblock.opblock-post .opblock-summary-method {
  background: var(--color-http-post);
}

.swagger-ui .opblock.opblock-post .opblock-summary {
  border-color: var(--color-http-post);
}

/* === OPERATION BLOCKS - PUT === */
.swagger-ui .opblock.opblock-put {
  border-color: var(--color-http-put);
  background: rgba(220, 88, 42, 0.05);
}

.swagger-ui .opblock.opblock-put .opblock-summary-method {
  background: var(--color-http-put);
}

.swagger-ui .opblock.opblock-put .opblock-summary {
  border-color: var(--color-http-put);
}

/* === OPERATION BLOCKS - DELETE === */
.swagger-ui .opblock.opblock-delete {
  border-color: var(--color-http-delete);
  background: rgba(239, 68, 68, 0.05);
}

.swagger-ui .opblock.opblock-delete .opblock-summary-method {
  background: var(--color-http-delete);
}

.swagger-ui .opblock.opblock-delete .opblock-summary {
  border-color: var(--color-http-delete);
}

/* === OPERATION BLOCKS - PATCH === */
.swagger-ui .opblock.opblock-patch {
  border-color: var(--color-http-patch);
  background: rgba(68, 0, 153, 0.05);
}

.swagger-ui .opblock.opblock-patch .opblock-summary-method {
  background: var(--color-http-patch);
}

.swagger-ui .opblock.opblock-patch .opblock-summary {
  border-color: var(--color-http-patch);
}

/* === BUTTONS === */
.swagger-ui .btn {
  font-family: var(--font-family-base);
  font-weight: var(--font-weight-bold);
  border-radius: var(--radius-md);
  text-transform: uppercase;
  letter-spacing: 0.025em;
  transition: all var(--transition-fast);
}

.swagger-ui .btn.authorize {
  color: var(--color-primary);
  border-color: var(--color-primary);
}

.swagger-ui .btn.authorize:hover {
  background: var(--color-primary);
  color: var(--color-text-inverse);
}

.swagger-ui .btn.authorize svg {
  fill: var(--color-primary);
}

.swagger-ui .btn.authorize:hover svg {
  fill: var(--color-text-inverse);
}

.swagger-ui .btn.execute {
  background: var(--color-primary);
  border-color: var(--color-primary);
}

.swagger-ui .btn.execute:hover {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
}

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

/* === MODELS SECTION === */
.swagger-ui section.models {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

.swagger-ui section.models h4 {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
  padding: var(--space-md);
  margin: 0;
  border-bottom: 1px solid var(--color-border);
}

.swagger-ui section.models .model-container {
  margin: var(--space-sm);
  background: var(--color-bg-secondary);
  border-radius: var(--radius-sm);
}

.swagger-ui .model-box {
  background: var(--color-bg-secondary);
  border-radius: var(--radius-sm);
  padding: var(--space-sm);
}

/* Fix inconsistent model widths - Swagger UI applies different margins to first/middle/last */
.swagger-ui section.models .model-container {
  margin: var(--space-sm) !important;
}

/* === RESPONSE SECTION === */
.swagger-ui .responses-inner {
  padding: var(--space-md);
}

.swagger-ui .opblock-body pre {
  background: var(--color-bg-code);
  border-radius: var(--radius-md);
  font-family: var(--font-family-mono);
  font-size: var(--font-size-sm);
}

.swagger-ui .response-col_status {
  font-family: var(--font-family-mono);
  font-weight: var(--font-weight-bold);
}

/* === FORM ELEMENTS === */
.swagger-ui select {
  font-family: var(--font-family-base);
  border-radius: var(--radius-sm);
  border-color: var(--color-border);
  padding: var(--space-sm);
}

.swagger-ui input[type="text"],
.swagger-ui textarea {
  font-family: var(--font-family-base);
  border-radius: var(--radius-sm);
  border-color: var(--color-border);
  padding: var(--space-sm);
}

.swagger-ui input[type="text"]:focus,
.swagger-ui textarea:focus,
.swagger-ui select:focus {
  border-color: var(--color-primary);
  outline: none;
  box-shadow: 0 0 0 2px rgba(0, 173, 239, 0.2);
}

/* === TABLES === */
.swagger-ui table {
  border-radius: var(--radius-md);
  overflow: hidden;
}

.swagger-ui table thead tr th {
  font-weight: var(--font-weight-bold);
  background: var(--color-bg-secondary);
  border-bottom: 2px solid var(--color-border);
  color: var(--color-text-primary);
  padding: var(--space-sm) var(--space-md);
}

.swagger-ui table tbody tr td {
  border-bottom: 1px solid var(--color-border-light);
  padding: var(--space-sm) var(--space-md);
  color: var(--color-text-secondary);
}

.swagger-ui .parameters-col_name {
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
}

.swagger-ui .parameter__name.required::after {
  color: var(--color-http-delete);
}

/* === SCHEME CONTAINER === */
.swagger-ui .scheme-container {
  display: none !important;
}

/* === LOADING STATES === */
.swagger-ui .loading-container .loading::before {
  border-top-color: var(--color-primary);
}

/* === WRAPPER === */
.swagger-ui .wrapper {
  max-width: var(--container-narrow);
  padding: 0;
}

/* === PARAMETER SECTION === */
.swagger-ui .opblock-section-header {
  background: var(--color-bg-secondary);
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}

.swagger-ui .opblock-section-header h4 {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
}

/* === TRY IT OUT BUTTON === */
.swagger-ui .try-out {
  display: none !important;
}

/* === RESPONSE CODES === */
.swagger-ui .responses-table .response-col_status {
  color: var(--color-text-primary);
}

.swagger-ui .response-col_links {
  font-size: var(--font-size-sm);
}

/* === EXPAND/COLLAPSE ICONS === */
.swagger-ui svg.arrow {
  fill: var(--color-text-secondary);
}

/* === MARKDOWN CONTENT === */
.swagger-ui .markdown p,
.swagger-ui .markdown li {
  color: var(--color-text-secondary);
}

.swagger-ui .markdown code {
  background: var(--color-bg-tertiary);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-sm);
}

/* === RESPONSIVE ADJUSTMENTS === */
@media (max-width: 768px) {
  .swagger-ui .opblock-tag {
    font-size: var(--font-size-xl);
  }

  .swagger-ui .opblock .opblock-summary {
    flex-wrap: wrap;
    gap: var(--space-sm);
  }

  .swagger-ui .opblock .opblock-summary-method {
    margin-bottom: 0;
  }

  .swagger-ui .info .title {
    font-size: var(--font-size-2xl);
  }
}
