:root {
    --pn-orange: #f97316;
    --pn-orange-dark: #ea580c;
    --pn-violet: #6d28d9;
    --pn-violet-dark: #2e1065;
    --pn-violet-hover: #4c1d95;
    --pn-surface: #f8f6fc;
    --pn-soft: #f4effc;
    --pn-border: #e7def7;
    --pn-text: #2f2a3d;
    --pn-muted: #6b6478;
    --pn-dark-surface: #151a1d;
    --pn-dark-panel: #101d2b;
    --pn-dark-text: #f8f4ff;
    --pn-dark-muted: #e7dcf6;
    --pn-violet-bright: #a78bfa;
}

html,
body {
    background: var(--pn-dark-surface);
}

body {
    color: var(--pn-dark-text);
    margin-top: 78px;
}

header::before {
    background: #fff;
    border-bottom: 1px solid var(--pn-border);
    box-shadow: 0 10px 30px rgba(46, 16, 101, 0.1);
    height: 78px;
}

header::after {
    background: linear-gradient(90deg, var(--pn-orange) 0%, #fd914b 34%, var(--pn-violet) 100%);
    content: "";
    height: 4px;
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 101;
}

header #logo.pn-api-doc-logo {
    align-items: center;
    background: transparent;
    display: inline-flex;
    height: 78px;
    left: 40px;
    right: auto;
    top: 39px;
}

header #logo.pn-api-doc-logo img {
    background: transparent;
    display: block;
    height: 48px;
    max-width: min(320px, calc(100vw - 80px));
    width: auto;
}

#swagger-ui.api-platform .wrapper {
    max-width: 1480px;
    padding-left: 48px;
    padding-right: 48px;
}

#swagger-ui.api-platform {
    background: var(--pn-dark-surface);
    color: var(--pn-dark-text);
    min-height: calc(100vh - 78px);
}

#swagger-ui.api-platform .information-container.wrapper {
    background: #fff;
    border-bottom: 1px solid var(--pn-border);
    box-shadow: 0 10px 26px rgba(46, 16, 101, 0.06);
    max-width: 100%;
    padding-top: 12px;
}

#swagger-ui.api-platform .info {
    color: var(--pn-text);
    max-width: 1480px;
    padding-left: 48px;
    padding-right: 48px;
}

#swagger-ui.api-platform .info .description,
#swagger-ui.api-platform .info li,
#swagger-ui.api-platform .info p,
#swagger-ui.api-platform .info table,
#swagger-ui.api-platform .info td {
    color: var(--pn-text);
}

#swagger-ui.api-platform .info .title {
    color: var(--pn-violet-dark);
    letter-spacing: 0;
}

#swagger-ui.api-platform .info .title small.version-stamp {
    background-color: var(--pn-orange);
}

#swagger-ui.api-platform .info a {
    color: var(--pn-violet);
}

#swagger-ui.api-platform .opblock {
    border: 1px solid rgba(46, 16, 101, 0.08) !important;
    border-radius: 8px;
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.22);
    overflow: hidden;
}

#swagger-ui.api-platform .opblock-summary {
    min-height: 48px;
}

#swagger-ui.api-platform .opblock-summary-method {
    border-radius: 0;
}

#swagger-ui.api-platform .opblock.opblock-get .opblock-summary,
#swagger-ui.api-platform .opblock.opblock-get .opblock-section-header {
    border-color: var(--pn-violet);
}

#swagger-ui.api-platform .opblock.opblock-get .opblock-summary-method,
#swagger-ui.api-platform .btn.execute {
    background-color: var(--pn-violet);
    border-color: var(--pn-violet);
}

#swagger-ui.api-platform .opblock.opblock-post .opblock-summary,
#swagger-ui.api-platform .opblock.opblock-post .opblock-section-header {
    border-color: var(--pn-orange);
}

#swagger-ui.api-platform .opblock.opblock-post .opblock-summary-method {
    background-color: var(--pn-orange);
}

#swagger-ui.api-platform .opblock.opblock-put .opblock-summary,
#swagger-ui.api-platform .opblock.opblock-put .opblock-section-header {
    border-color: #a855f7;
}

#swagger-ui.api-platform .opblock.opblock-put .opblock-summary-method {
    background-color: #a855f7;
}

#swagger-ui.api-platform .opblock.opblock-delete .opblock-summary,
#swagger-ui.api-platform .opblock.opblock-delete .opblock-section-header {
    border-color: #dc2626;
}

#swagger-ui.api-platform .opblock.opblock-delete .opblock-summary-method {
    background-color: #dc2626;
}

#swagger-ui.api-platform .opblock.opblock-get .opblock-section-header,
#swagger-ui.api-platform .opblock.opblock-post .opblock-section-header,
#swagger-ui.api-platform .opblock.opblock-put .opblock-section-header,
#swagger-ui.api-platform .opblock.opblock-delete .opblock-section-header {
    background: var(--pn-soft);
}

#swagger-ui.api-platform .opblock .opblock-section-header h4,
#swagger-ui.api-platform .opblock .opblock-section-header label,
#swagger-ui.api-platform .opblock .opblock-section-header span,
#swagger-ui.api-platform .opblock .opblock-section-header .tab-header .tab-item,
#swagger-ui.api-platform .opblock .opblock-section-header .tab-header .tab-item button,
#swagger-ui.api-platform .opblock .opblock-section-header .tab-header .tab-item h4 span {
    color: var(--pn-text);
}

#swagger-ui.api-platform .opblock .opblock-section-header .required,
#swagger-ui.api-platform .parameters-col_name .parameter__required {
    color: #dc2626;
}

#swagger-ui.api-platform .opblock .opblock-section-header .try-out__btn {
    background: #fff;
}

#swagger-ui.api-platform .opblock .opblock-description-wrapper p,
#swagger-ui.api-platform .opblock .opblock-external-docs-wrapper p,
#swagger-ui.api-platform .opblock .opblock-title_normal p {
    color: var(--pn-dark-text);
}

#swagger-ui.api-platform .opblock .responses-inner h4,
#swagger-ui.api-platform .opblock .responses-inner h5,
#swagger-ui.api-platform .opblock .response-col_status,
#swagger-ui.api-platform .opblock .response-col_description,
#swagger-ui.api-platform .opblock .response-col_links,
#swagger-ui.api-platform .opblock .parameters-col_name,
#swagger-ui.api-platform .opblock .parameters-col_description {
    color: var(--pn-dark-text);
}

#swagger-ui.api-platform .opblock .tab li,
#swagger-ui.api-platform .opblock .tab li button,
#swagger-ui.api-platform .opblock .tab li button.tablinks {
    color: var(--pn-dark-muted);
}

#swagger-ui.api-platform .opblock .tab li.active button,
#swagger-ui.api-platform .opblock .tab li button.active {
    color: #fff;
}

#swagger-ui.api-platform .opblock-tag {
    border-bottom-color: rgba(248, 244, 255, 0.5);
    color: var(--pn-dark-text);
}

#swagger-ui.api-platform .opblock-tag small,
#swagger-ui.api-platform .opblock-tag span {
    color: var(--pn-dark-muted);
}

#swagger-ui.api-platform .opblock-tag:hover {
    background-color: rgba(167, 139, 250, 0.12);
}

#swagger-ui.api-platform .scheme-container {
    background: #fff;
    border: 1px solid var(--pn-border);
    border-radius: 8px;
    box-shadow: 0 8px 22px rgba(46, 16, 101, 0.07);
}

#swagger-ui.api-platform .scheme-container,
#swagger-ui.api-platform .scheme-container .schemes > label,
#swagger-ui.api-platform .scheme-container label,
#swagger-ui.api-platform .scheme-container span {
    color: var(--pn-text);
}

#swagger-ui.api-platform .opblock .opblock-summary-description,
#swagger-ui.api-platform .opblock .opblock-summary-path,
#swagger-ui.api-platform .opblock .opblock-summary-path__deprecated,
#swagger-ui.api-platform .opblock .opblock-summary-operation-id {
    color: var(--pn-dark-text);
}

#swagger-ui.api-platform .opblock .opblock-summary-path {
    font-weight: 700;
}

#swagger-ui.api-platform .models,
#swagger-ui.api-platform .models h4,
#swagger-ui.api-platform .model-title,
#swagger-ui.api-platform .model-box {
    color: var(--pn-dark-text);
}

#swagger-ui.api-platform .btn {
    border-radius: 6px;
}

#swagger-ui.api-platform .btn.execute:hover {
    background-color: var(--pn-violet-hover);
    border-color: var(--pn-violet-hover);
}

#swagger-ui.api-platform .btn.try-out__btn,
#swagger-ui.api-platform .btn.authorize {
    border-color: var(--pn-violet);
    color: var(--pn-violet);
}

#swagger-ui.api-platform .btn.try-out__btn:hover,
#swagger-ui.api-platform .btn.authorize:hover {
    background-color: rgba(109, 40, 217, 0.08);
    border-color: var(--pn-violet);
}

#swagger-ui.api-platform input[type=text],
#swagger-ui.api-platform select,
#swagger-ui.api-platform textarea {
    border-color: var(--pn-border);
    border-radius: 6px;
}

#swagger-ui.api-platform input[type=text]:focus,
#swagger-ui.api-platform select:focus,
#swagger-ui.api-platform textarea:focus {
    border-color: var(--pn-violet);
    box-shadow: 0 0 0 3px rgba(109, 40, 217, 0.12);
}

@media (max-width: 768px) {
    body {
        margin-top: 68px;
    }

    header::before {
        height: 68px;
    }

    header #logo.pn-api-doc-logo {
        height: 68px;
        left: 20px;
        top: 34px;
    }

    header #logo.pn-api-doc-logo img {
        height: 38px;
        max-width: calc(100vw - 40px);
    }

    #swagger-ui.api-platform .wrapper,
    #swagger-ui.api-platform .info {
        padding-left: 20px;
        padding-right: 20px;
    }
}
