:root {
  --tolv-ink: #edf2ff;
  --tolv-muted: #9aa8bf;
  --tolv-border: #26354f;
  --tolv-surface: #111827;
  --tolv-surface-2: #172033;
  --tolv-soft: #0b1020;
  --tolv-primary: #6d5dfc;
  --tolv-primary-strong: #21106b;
  --tolv-accent: #ff5a1f;
  --tolv-success: #16a34a;
  --tolv-warning: #d97706;
  --tolv-danger: #dc2626;
  --tolv-blue: #2563eb;
  --tolv-code-bg: #0f172a;
  --tolv-code-border: #334155;
  --tolv-code-text: #dbeafe;
  --tolv-code-key: #ff8a4c;
  --tolv-code-string: #a7f3d0;
  --tolv-code-number: #93c5fd;
  --tolv-code-boolean: #f9a8d4;
}

html,
body {
  background: var(--tolv-soft);
}

.swagger-ui {
  color: var(--tolv-ink);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.swagger-ui .topbar {
  background: #0c1020;
  border-bottom: 1px solid var(--tolv-border);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28);
  height: 56px;
  padding: 10px 0;
}

.swagger-ui .topbar .wrapper {
  align-items: center;
  display: flex;
  max-width: 1240px;
}

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

.swagger-ui .topbar a.link {
  align-items: center;
  display: inline-flex;
}

.swagger-ui .topbar a.link img {
  height: 28px;
  object-fit: contain;
  width: auto;
}

.swagger-ui .information-container.wrapper,
.swagger-ui .scheme-container,
.swagger-ui .wrapper {
  max-width: 1240px;
}

.swagger-ui .info {
  background: linear-gradient(135deg, #141c2f 0%, #101827 100%);
  border: 1px solid var(--tolv-border);
  border-radius: 16px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.26);
  margin: 28px 0 22px;
  padding: 28px 32px;
}

.swagger-ui .info .title {
  color: #ffffff;
  font-size: 34px;
  font-weight: 760;
  letter-spacing: 0;
}

.swagger-ui .info .title small {
  background: var(--tolv-accent);
  border-radius: 999px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 700;
  padding: 5px 9px;
}

.swagger-ui .info p,
.swagger-ui .info li,
.swagger-ui .renderedMarkdown p {
  color: var(--tolv-muted);
  font-size: 14px;
  line-height: 1.65;
}

.swagger-ui .scheme-container {
  background: transparent;
  box-shadow: none;
  margin: 0 auto 18px;
  padding: 0;
}

.swagger-ui .opblock-tag {
  border-bottom: 1px solid var(--tolv-border);
  color: var(--tolv-ink);
  font-size: 20px;
  letter-spacing: 0;
  padding: 22px 0 14px;
}

.swagger-ui .opblock-tag small {
  color: var(--tolv-muted);
  font-size: 13px;
}

.swagger-ui .opblock {
  border: 1px solid var(--tolv-border);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(23, 32, 50, 0.04);
  margin: 0 0 12px;
  overflow: hidden;
}

.swagger-ui .opblock .opblock-summary {
  min-height: 54px;
  padding: 8px 14px;
}

.swagger-ui .opblock .opblock-summary-method {
  border-radius: 999px;
  font-size: 12px;
  font-weight: 760;
  min-width: 72px;
  padding: 7px 12px;
  text-shadow: none;
}

.swagger-ui .opblock.opblock-get {
  background: rgba(37, 99, 235, 0.11);
  border-color: rgba(96, 165, 250, 0.38);
}

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

.swagger-ui .opblock.opblock-post {
  background: rgba(22, 163, 74, 0.1);
  border-color: rgba(74, 222, 128, 0.34);
}

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

.swagger-ui .opblock.opblock-put,
.swagger-ui .opblock.opblock-patch {
  background: rgba(217, 119, 6, 0.11);
  border-color: rgba(251, 191, 36, 0.36);
}

.swagger-ui .opblock.opblock-put .opblock-summary-method,
.swagger-ui .opblock.opblock-patch .opblock-summary-method {
  background: var(--tolv-warning);
}

.swagger-ui .opblock.opblock-delete {
  background: rgba(220, 38, 38, 0.11);
  border-color: rgba(248, 113, 113, 0.34);
}

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

.swagger-ui .opblock .opblock-summary-path {
  color: var(--tolv-ink);
  font-weight: 680;
}

.swagger-ui .opblock .opblock-summary-description {
  color: var(--tolv-muted);
  font-size: 13px;
}

.swagger-ui .btn,
.swagger-ui .btn.authorize,
.swagger-ui .execute-wrapper .btn {
  border-radius: 999px;
  box-shadow: none;
  font-weight: 700;
}

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

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

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

.swagger-ui table tbody tr td,
.swagger-ui table thead tr th {
  color: var(--tolv-ink);
}

.swagger-ui input[type="text"],
.swagger-ui input[type="password"],
.swagger-ui input[type="search"],
.swagger-ui textarea,
.swagger-ui select {
  border: 1px solid var(--tolv-border);
  border-radius: 8px;
  box-shadow: none;
}

.swagger-ui .model-box,
.swagger-ui section.models {
  border-color: var(--tolv-border);
  border-radius: 12px;
}

.swagger-ui .markdown code,
.swagger-ui .renderedMarkdown code,
.swagger-ui code {
  background: rgba(255, 90, 31, 0.12);
  border-radius: 6px;
  color: #ffb199;
  padding: 2px 5px;
}

.swagger-ui .highlight-code,
.swagger-ui .microlight {
  border-radius: 10px;
}

.swagger-ui .dialog-ux .modal-ux {
  border-radius: 16px;
}

.swagger-ui a,
.swagger-ui .info a {
  color: #8fb7ff;
}

.swagger-ui .info .base-url,
.swagger-ui .info h1,
.swagger-ui .info h2,
.swagger-ui .info h3,
.swagger-ui .info h4,
.swagger-ui .info h5,
.swagger-ui .model-title,
.swagger-ui .parameter__name,
.swagger-ui .tab li,
.swagger-ui .tab li button,
.swagger-ui .response-col_status,
.swagger-ui .response-col_description,
.swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5,
.swagger-ui .opblock-title_normal,
.swagger-ui .opblock-section-header h4,
.swagger-ui label,
.swagger-ui .servers-title {
  color: var(--tolv-ink);
}

.swagger-ui .opblock,
.swagger-ui .model-container,
.swagger-ui section.models,
.swagger-ui .opblock .opblock-section-header,
.swagger-ui .responses-wrapper,
.swagger-ui .responses-inner,
.swagger-ui .parameters-container,
.swagger-ui .model-box,
.swagger-ui .scheme-container,
.swagger-ui .dialog-ux .modal-ux {
  background: var(--tolv-surface);
  border-color: var(--tolv-border);
}

.swagger-ui .opblock .opblock-section-header {
  box-shadow: none;
}

.swagger-ui .opblock.is-open .opblock-summary {
  border-color: var(--tolv-border);
}

.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-path__deprecated,
.swagger-ui .opblock .opblock-summary-operation-id,
.swagger-ui table thead tr th,
.swagger-ui table thead tr td,
.swagger-ui table tbody tr td,
.swagger-ui .model,
.swagger-ui .model .property,
.swagger-ui .model .property.primitive,
.swagger-ui .prop-name,
.swagger-ui .prop-type,
.swagger-ui .prop-format {
  color: var(--tolv-ink);
}

.swagger-ui .opblock .opblock-summary-description,
.swagger-ui .parameter__in,
.swagger-ui .parameter__extension,
.swagger-ui .response__extension,
.swagger-ui .model .external-docs,
.swagger-ui table.model tr.description,
.swagger-ui section.models h4,
.swagger-ui section.models h5 {
  color: var(--tolv-muted);
}

.swagger-ui table thead tr td,
.swagger-ui table thead tr th,
.swagger-ui .opblock .opblock-section-header,
.swagger-ui .auth-container,
.swagger-ui section.models.is-open h4 {
  border-color: var(--tolv-border);
}

.swagger-ui input[type="text"],
.swagger-ui input[type="password"],
.swagger-ui input[type="search"],
.swagger-ui textarea,
.swagger-ui select {
  background: #0f172a;
  color: var(--tolv-ink);
}

.swagger-ui input::placeholder,
.swagger-ui textarea::placeholder {
  color: #718096;
}

.swagger-ui .btn,
.swagger-ui .btn.authorize {
  background: transparent;
  border-color: #637199;
  color: var(--tolv-ink);
}

.swagger-ui .btn.authorize {
  border-color: var(--tolv-accent);
  color: #ffb199;
}

.swagger-ui .btn.authorize svg {
  fill: #ffb199;
}

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

.swagger-ui .highlight-code,
.swagger-ui .responses-inner .highlight-code {
  background: var(--tolv-code-bg);
  border: 1px solid var(--tolv-code-border);
  box-shadow: inset 4px 0 0 var(--tolv-accent);
  color: var(--tolv-code-text);
  overflow: auto;
}

.swagger-ui .highlight-code pre,
.swagger-ui .highlight-code code,
.swagger-ui .microlight {
  background: transparent !important;
  color: var(--tolv-code-text) !important;
  font-family: "Cascadia Code", "Fira Code", Consolas, monospace;
  font-size: 13px;
  line-height: 1.65;
  text-shadow: none !important;
}

.swagger-ui .microlight .key,
.swagger-ui .microlight .hljs-attr,
.swagger-ui .microlight .hljs-attribute,
.swagger-ui .microlight .token.property {
  color: var(--tolv-code-key) !important;
}

.swagger-ui .microlight .str,
.swagger-ui .microlight .hljs-string,
.swagger-ui .microlight .token.string {
  color: var(--tolv-code-string) !important;
}

.swagger-ui .microlight .number,
.swagger-ui .microlight .hljs-number,
.swagger-ui .microlight .token.number {
  color: var(--tolv-code-number) !important;
}

.swagger-ui .microlight .boolean,
.swagger-ui .microlight .hljs-literal,
.swagger-ui .microlight .token.boolean,
.swagger-ui .microlight .token.null {
  color: var(--tolv-code-boolean) !important;
}

.swagger-ui .model-example,
.swagger-ui .model-example ul,
.swagger-ui .model-example li {
  color: var(--tolv-code-text);
}

.swagger-ui .json-schema-2020-12,
.swagger-ui section.models .model-container {
  background: rgba(15, 23, 42, 0.88);
}

.swagger-ui .json-schema-2020-12__title,
.swagger-ui .json-schema-2020-12-keyword__name--primary,
.swagger-ui .json-schema-2020-12-keyword__value--primary,
.swagger-ui .json-schema-2020-12__attribute {
  color: var(--tolv-code-text);
}

.swagger-ui .json-schema-2020-12-keyword__name--secondary,
.swagger-ui .json-schema-2020-12-keyword__value--secondary,
.swagger-ui .json-schema-2020-12-keyword--description {
  color: var(--tolv-muted);
}

.swagger-ui .dialog-ux .backdrop-ux {
  background: rgba(0, 0, 0, 0.74);
}

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

.swagger-ui .dialog-ux .modal-ux-content p,
.swagger-ui .dialog-ux .modal-ux-content h4,
.swagger-ui .dialog-ux .modal-ux-header h3 {
  color: var(--tolv-ink);
}
