/*
 * Tema Dark QueroApoiar para Swagger UI (playground)
 * Inspirado em Stripe Docs / Linear / Vercel
 */

:root {
    --qa-bg: #0a0a0f;
    --qa-bg-elev: #14141a;
    --qa-bg-card: #18181f;
    --qa-bg-code: #0d0d12;
    --qa-border: #27272a;
    --qa-border-soft: #1f1f24;
    --qa-text: #f4f4f5;
    --qa-text-dim: #a1a1aa;
    --qa-text-muted: #71717a;
    --qa-primary: #00D796;
    --qa-primary-hover: #00B080;
    --qa-primary-dim: rgba(0, 215, 150, 0.12);
    --qa-info: #3b82f6;
    --qa-warning: #f59e0b;
    --qa-danger: #ef4444;
}

/* Base */
html, body {
    background: var(--qa-bg) !important;
    color: var(--qa-text) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
}

.swagger-ui, .swagger-ui * {
    line-height: 1.65 !important;
}

.swagger-ui {
    color: var(--qa-text) !important;
    background: var(--qa-bg) !important;
    font-size: 15px !important;
}

.swagger-ui .wrapper {
    max-width: 1200px !important;
    padding: 0 24px !important;
}

/* Mais espaco entre secoes principais */
.swagger-ui .information-container.wrapper {
    padding: 32px 24px !important;
}

.swagger-ui .scheme-container {
    padding: 20px 24px !important;
}

/* Header espelhando o portal (mesma altura, mesmo background, mesmo padding) */
.swagger-ui .topbar {
    background: rgba(10, 10, 15, 0.85) !important;
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--qa-border) !important;
    padding: 0 24px !important;
    height: 64px !important;
    position: sticky;
    top: 0;
    z-index: 100;
}

.swagger-ui .topbar .topbar-wrapper {
    max-width: 1400px;
    margin: 0 auto;
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
    height: 100%;
    gap: 12px;
    width: 100%;
}

.swagger-ui .topbar .topbar-wrapper a,
.swagger-ui .topbar .topbar-wrapper svg,
.swagger-ui .topbar .download-url-wrapper {
    display: none !important;
}

/* Logo SVG */
.swagger-ui .topbar .topbar-wrapper::before {
    content: "";
    background: url("../qalogo.svg") no-repeat left center / contain;
    width: 32px;
    height: 28px;
    display: block;
    flex-shrink: 0;
}

/* Texto "API de Parceiros · Playground" estilo Stripe */
.swagger-ui .topbar .topbar-wrapper::after {
    content: "API de Parceiros · Playground";
    color: var(--qa-text-dim);
    font-size: 14px;
    font-weight: 500;
    border-left: 1px solid var(--qa-border);
    padding-left: 12px;
    height: 24px;
    display: flex;
    align-items: center;
}

/* Link "Voltar para Docs" injetado via JS depois — placeholder de estilo */
.qa-back-link {
    margin-left: auto;
    color: var(--qa-text-dim) !important;
    font-size: 14px !important;
    font-weight: 500;
    text-decoration: none;
    transition: color 0.15s;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.qa-back-link:hover {
    color: var(--qa-text) !important;
}

/* Info section (titulo, descricao) */
.swagger-ui .info {
    margin: 32px 0 !important;
    color: var(--qa-text) !important;
}

.swagger-ui .info .title,
.swagger-ui .info h1, .swagger-ui .info h2,
.swagger-ui .info h3, .swagger-ui .info h4 {
    color: var(--qa-text) !important;
}

.swagger-ui .info .title small {
    background: var(--qa-primary-dim) !important;
    color: var(--qa-primary) !important;
    border-radius: 4px;
}

.swagger-ui .info .title small pre {
    color: var(--qa-primary) !important;
    background: transparent !important;
}

.swagger-ui .info p,
.swagger-ui .info li,
.swagger-ui .info table td,
.swagger-ui .markdown p,
.swagger-ui .markdown li {
    color: var(--qa-text-dim) !important;
}

.swagger-ui .info a, .swagger-ui a {
    color: var(--qa-primary) !important;
}

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

.swagger-ui .info code,
.swagger-ui .markdown code,
.swagger-ui .renderedMarkdown code {
    background: var(--qa-bg-card) !important;
    color: var(--qa-primary) !important;
    border: 1px solid var(--qa-border) !important;
    padding: 2px 6px !important;
    border-radius: 4px !important;
}

.swagger-ui .markdown pre,
.swagger-ui .renderedMarkdown pre {
    background: var(--qa-bg-code) !important;
    border: 1px solid var(--qa-border) !important;
    border-radius: 8px !important;
}

/* Authorize section */
.swagger-ui .scheme-container {
    background: var(--qa-bg-card) !important;
    border: 1px solid var(--qa-border) !important;
    box-shadow: none !important;
    border-radius: 10px !important;
    margin: 16px 0 24px 0 !important;
    padding: 16px 20px !important;
}

.swagger-ui .auth-wrapper .authorize {
    background: var(--qa-primary) !important;
    color: #000 !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 8px 18px !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    transition: background 0.15s !important;
}

.swagger-ui .auth-wrapper .authorize:hover {
    background: var(--qa-primary-hover) !important;
}

.swagger-ui .auth-wrapper .authorize svg {
    fill: #000 !important;
}

.swagger-ui .auth-wrapper .authorize span {
    color: #000 !important;
}

/* Tags / sections */
.swagger-ui .opblock-tag {
    color: var(--qa-text) !important;
    border-bottom: 1px solid var(--qa-border) !important;
    font-size: 22px !important;
    line-height: 1.4 !important;
    padding: 24px 0 16px 0 !important;
    margin-bottom: 12px !important;
    margin-top: 32px !important;
}

.swagger-ui .opblock-tag-section h3,
.swagger-ui .opblock-tag span,
.swagger-ui .opblock-tag small {
    color: var(--qa-text) !important;
}

.swagger-ui .opblock-tag small {
    color: var(--qa-text-dim) !important;
    font-weight: 400 !important;
}

.swagger-ui .opblock-tag-section h3 svg,
.swagger-ui .opblock-tag svg {
    fill: var(--qa-text-dim) !important;
}

/* Operation blocks */
.swagger-ui .opblock {
    background: var(--qa-bg-card) !important;
    border-radius: 8px !important;
    border: 1px solid var(--qa-border) !important;
    box-shadow: none !important;
    margin: 0 0 16px 0 !important;
}

.swagger-ui .opblock.opblock-post {
    border-color: rgba(0, 215, 150, 0.4) !important;
    background: rgba(0, 215, 150, 0.04) !important;
}
.swagger-ui .opblock.opblock-post .opblock-summary-method {
    background: var(--qa-primary) !important;
    color: #000 !important;
}

.swagger-ui .opblock.opblock-get {
    border-color: rgba(59, 130, 246, 0.4) !important;
    background: rgba(59, 130, 246, 0.04) !important;
}
.swagger-ui .opblock.opblock-get .opblock-summary-method {
    background: var(--qa-info) !important;
}

.swagger-ui .opblock.opblock-patch {
    border-color: rgba(249, 115, 22, 0.4) !important;
    background: rgba(249, 115, 22, 0.04) !important;
}
.swagger-ui .opblock.opblock-patch .opblock-summary-method {
    background: #f97316 !important;
}

.swagger-ui .opblock.opblock-delete {
    border-color: rgba(239, 68, 68, 0.4) !important;
    background: rgba(239, 68, 68, 0.04) !important;
}
.swagger-ui .opblock.opblock-delete .opblock-summary-method {
    background: var(--qa-danger) !important;
}

.swagger-ui .opblock-summary-method {
    border-radius: 4px !important;
    font-weight: 700 !important;
    min-width: 80px !important;
    text-align: center !important;
    box-shadow: none !important;
}

.swagger-ui .opblock-summary {
    padding: 14px 20px !important;
    border: none !important;
    gap: 12px !important;
}

.swagger-ui .opblock-summary-method {
    margin-right: 12px !important;
    padding: 6px 0 !important;
}

.swagger-ui .opblock-summary-path,
.swagger-ui .opblock-summary-path__deprecated,
.swagger-ui .opblock-summary-path a,
.swagger-ui .opblock-summary-path span {
    color: var(--qa-text) !important;
    font-weight: 600 !important;
}

.swagger-ui .opblock-summary-description {
    color: var(--qa-text-dim) !important;
    font-size: 13px !important;
}

.swagger-ui .opblock-summary-control:focus {
    outline: none !important;
}

.swagger-ui .opblock-summary svg,
.swagger-ui .opblock svg.arrow {
    fill: var(--qa-text-dim) !important;
}

.swagger-ui .opblock .opblock-section-header {
    background: var(--qa-bg-elev) !important;
    border-color: var(--qa-border) !important;
    box-shadow: none !important;
}

.swagger-ui .opblock .opblock-section-header h4,
.swagger-ui .opblock .opblock-section-header label {
    color: var(--qa-text) !important;
}

.swagger-ui .opblock-body,
.swagger-ui .opblock-description-wrapper p,
.swagger-ui .opblock-external-docs-wrapper p,
.swagger-ui .opblock-title_normal p {
    color: var(--qa-text-dim) !important;
    line-height: 1.7 !important;
}

.swagger-ui .opblock-description-wrapper {
    padding: 16px 20px !important;
}

.swagger-ui .opblock .opblock-section-header {
    padding: 12px 20px !important;
}

/* Espacamento das tabelas dentro dos opblocks */
.swagger-ui .opblock-body table {
    margin: 12px 0 !important;
}

.swagger-ui .opblock-body th, .swagger-ui .opblock-body td {
    padding: 12px 14px !important;
    line-height: 1.6 !important;
}

/* Parametros: linhas com mais ar */
.swagger-ui .parameters > tbody > tr {
    height: auto !important;
}

.swagger-ui .parameters > tbody > tr > td {
    padding: 14px 12px !important;
    vertical-align: top !important;
}

.swagger-ui .parameter__name {
    margin-bottom: 4px !important;
    line-height: 1.5 !important;
}

.swagger-ui .parameter__type, .swagger-ui .parameter__in {
    margin-bottom: 4px !important;
}

/* Models / Schemas: mais ar */
.swagger-ui section.models {
    padding: 16px 20px !important;
    margin-top: 24px !important;
}

.swagger-ui .model-box {
    padding: 12px !important;
}

.swagger-ui .model {
    line-height: 1.7 !important;
}

.swagger-ui .property-row td {
    padding: 8px 12px !important;
}

/* Info / hero: mais ar */
.swagger-ui .info {
    margin: 40px 0 !important;
}

.swagger-ui .info .title {
    margin-bottom: 16px !important;
    line-height: 1.3 !important;
}

.swagger-ui .info .description {
    line-height: 1.7 !important;
}

.swagger-ui .info .description p {
    margin: 12px 0 !important;
}

.swagger-ui .info .description ul, .swagger-ui .info .description ol {
    margin: 12px 0 12px 24px !important;
}

.swagger-ui .info .description li {
    margin-bottom: 6px !important;
    line-height: 1.7 !important;
}

.swagger-ui .info .description h1, .swagger-ui .info .description h2 {
    margin-top: 32px !important;
    margin-bottom: 16px !important;
}

/* Parameters */
.swagger-ui .parameters-container,
.swagger-ui .parameters {
    background: transparent !important;
}

.swagger-ui .parameter__name,
.swagger-ui .parameter__type,
.swagger-ui .parameter__deprecated,
.swagger-ui .parameter__in,
.swagger-ui .response-col_status,
.swagger-ui table.parameters,
.swagger-ui table thead tr th,
.swagger-ui table tbody tr td {
    color: var(--qa-text) !important;
    border-color: var(--qa-border-soft) !important;
}

.swagger-ui table thead tr th {
    background: var(--qa-bg-elev) !important;
}

.swagger-ui .parameter__name.required::after {
    color: var(--qa-danger) !important;
}

.swagger-ui .parameter__name {
    font-weight: 600 !important;
}

.swagger-ui .parameter__type {
    color: var(--qa-text-dim) !important;
    font-size: 12px !important;
}

.swagger-ui .parameter__in {
    color: var(--qa-text-muted) !important;
    font-size: 12px !important;
}

/* Inputs */
.swagger-ui input[type="text"],
.swagger-ui input[type="password"],
.swagger-ui input[type="email"],
.swagger-ui input[type="search"],
.swagger-ui textarea,
.swagger-ui select {
    background: var(--qa-bg-elev) !important;
    border: 1px solid var(--qa-border) !important;
    border-radius: 6px !important;
    padding: 8px 12px !important;
    color: var(--qa-text) !important;
    font-size: 13px !important;
    transition: border-color 0.15s, box-shadow 0.15s !important;
}

.swagger-ui input::placeholder,
.swagger-ui textarea::placeholder {
    color: var(--qa-text-muted) !important;
}

.swagger-ui input[type="text"]:focus,
.swagger-ui input[type="password"]:focus,
.swagger-ui input[type="email"]:focus,
.swagger-ui textarea:focus {
    border-color: var(--qa-primary) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(0, 215, 150, 0.15) !important;
}

/* Try it out button */
.swagger-ui .try-out__btn {
    background: var(--qa-bg-elev) !important;
    color: var(--qa-primary) !important;
    border: 1px solid var(--qa-primary) !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    transition: all 0.15s !important;
    padding: 6px 14px !important;
    font-size: 13px !important;
}

.swagger-ui .try-out__btn:hover {
    background: var(--qa-primary-dim) !important;
}

/* Execute button */
.swagger-ui .btn.execute {
    background: var(--qa-primary) !important;
    color: #000 !important;
    border: none !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    padding: 10px 24px !important;
    transition: background 0.15s !important;
}

.swagger-ui .btn.execute:hover {
    background: var(--qa-primary-hover) !important;
}

/* Cancel button */
.swagger-ui .btn.cancel {
    background: transparent !important;
    border: 1px solid var(--qa-danger) !important;
    color: var(--qa-danger) !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
}

.swagger-ui .btn.cancel:hover {
    background: rgba(239, 68, 68, 0.1) !important;
}

/* Generic buttons */
.swagger-ui .btn {
    border-radius: 6px !important;
    box-shadow: none !important;
}

.swagger-ui .btn-clear {
    color: var(--qa-text-dim) !important;
}

/* Response */
.swagger-ui .responses-wrapper {
    background: transparent !important;
}

.swagger-ui .responses-inner {
    background: transparent !important;
}

.swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5,
.swagger-ui .response-col_links {
    color: var(--qa-text) !important;
}

.swagger-ui .response-col_status {
    color: var(--qa-text) !important;
    font-weight: 700 !important;
}

.swagger-ui .response.live-response {
    background: var(--qa-bg-elev) !important;
    border: 1px solid var(--qa-border) !important;
    border-radius: 6px !important;
    padding: 12px !important;
}

.swagger-ui .response.live-response h4,
.swagger-ui .response.live-response h5 {
    color: var(--qa-text-dim) !important;
}

/* Code blocks (highlighted JSON) */
.swagger-ui .highlight-code,
.swagger-ui .opblock-body pre.microlight {
    background: var(--qa-bg-code) !important;
    border: 1px solid var(--qa-border) !important;
    border-radius: 6px !important;
}

.swagger-ui .microlight {
    color: #e5e7eb !important;
    font-family: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace !important;
    font-size: 12px !important;
    line-height: 1.5 !important;
}

.swagger-ui .microlight .keyword { color: #f472b6 !important; }
.swagger-ui .microlight .string { color: #a5d6ff !important; }
.swagger-ui .microlight .number { color: #f59e0b !important; }
.swagger-ui .microlight .literal { color: var(--qa-primary) !important; }
.swagger-ui .microlight .property { color: #67e8f9 !important; }

.swagger-ui .copy-to-clipboard {
    background: var(--qa-bg-card) !important;
    border-radius: 4px !important;
}

.swagger-ui .copy-to-clipboard button {
    color: var(--qa-text-dim) !important;
}

/* Models / Schemas */
.swagger-ui section.models {
    background: var(--qa-bg-card) !important;
    border: 1px solid var(--qa-border) !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

.swagger-ui section.models.is-open h4 {
    border-bottom-color: var(--qa-border) !important;
}

.swagger-ui section.models h4,
.swagger-ui section.models h5 {
    color: var(--qa-text) !important;
}

.swagger-ui section.models h4 svg {
    fill: var(--qa-text-dim) !important;
}

.swagger-ui .model-title,
.swagger-ui .model .property,
.swagger-ui .model .prop {
    color: var(--qa-text) !important;
}

.swagger-ui .model .prop-type {
    color: var(--qa-primary) !important;
}

.swagger-ui .model .prop-format {
    color: var(--qa-text-muted) !important;
}

.swagger-ui .model-toggle {
    color: var(--qa-text-dim) !important;
}

.swagger-ui .property-row td {
    color: var(--qa-text-dim) !important;
}

.swagger-ui .property.primitive {
    color: var(--qa-text-dim) !important;
}

/* Tables */
.swagger-ui table {
    background: transparent !important;
}

.swagger-ui table tbody tr {
    background: transparent !important;
}

.swagger-ui table tbody tr:hover {
    background: var(--qa-bg-elev) !important;
}

/* Authorize modal */
.swagger-ui .dialog-ux .modal-ux {
    background: var(--qa-bg-card) !important;
    border: 1px solid var(--qa-border) !important;
    border-radius: 12px !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5) !important;
}

.swagger-ui .dialog-ux .modal-ux-content,
.swagger-ui .dialog-ux .modal-ux-header,
.swagger-ui .dialog-ux .modal-ux-inner {
    background: transparent !important;
}

.swagger-ui .dialog-ux .modal-ux-header h3 {
    color: var(--qa-text) !important;
}

.swagger-ui .dialog-ux .modal-ux-header {
    border-bottom: 1px solid var(--qa-border) !important;
}

.swagger-ui .auth-container,
.swagger-ui .auth-container h4,
.swagger-ui .auth-container h5,
.swagger-ui .auth-container p,
.swagger-ui .auth-container label {
    color: var(--qa-text) !important;
}

.swagger-ui .auth-container .auth-btn-wrapper .btn-done {
    background: var(--qa-bg-elev) !important;
    border: 1px solid var(--qa-border) !important;
    color: var(--qa-text) !important;
}

.swagger-ui .modal-ux .close-modal {
    color: var(--qa-text-dim) !important;
}

/* Markdown body */
.swagger-ui .markdown,
.swagger-ui .renderedMarkdown {
    color: var(--qa-text-dim) !important;
}

.swagger-ui .markdown h1, .swagger-ui .markdown h2, .swagger-ui .markdown h3,
.swagger-ui .markdown h4, .swagger-ui .markdown h5,
.swagger-ui .renderedMarkdown h1, .swagger-ui .renderedMarkdown h2 {
    color: var(--qa-text) !important;
}

.swagger-ui .markdown table,
.swagger-ui .renderedMarkdown table {
    color: var(--qa-text-dim) !important;
}

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--qa-bg); }
::-webkit-scrollbar-thumb { background: var(--qa-border); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: var(--qa-text-muted); }

/* Esconder "Powered by SmartBear" */
.swagger-ui .info hgroup.main + .info > a:last-child,
.swagger-ui .information-container .info hgroup.main a {
    display: none !important;
}

/* Footer customizado QueroApoiar */
.swagger-ui .information-container::after {
    display: none !important;
}

body::after {
    content: "QueroApoiar — Plataforma homologada pelo TSE";
    display: block;
    text-align: center;
    padding: 24px;
    color: var(--qa-text-muted);
    font-size: 13px;
    border-top: 1px solid var(--qa-border);
    margin-top: 48px;
}
