/* import official swagger-ui.css from CDN */
@import url("https://cdn.jsdelivr.net/npm/swagger-ui-dist@5/swagger-ui.css");

/* Import lbc-theme.css for shared semantic tokens */
@import url("lbc-theme.css");

/* ============================================
   LinkByCar Swagger UI Theme
   Brand colors defined in lbc-theme.css
   ============================================ */

/* --- Page background --- */
html {
    box-sizing: border-box;
}

body {
    background: var(--lbc-bg) !important;
}

/* --- Topbar (Explore bar) --- */
.swagger-ui .topbar {
    background-color: var(--lbc-daintree) !important;
    border-bottom: 3px solid var(--lbc-cyan);
    padding: 10px 0;
}

.swagger-ui .topbar .download-url-wrapper .select-label {
    color: var(--lbc-card-bg) !important;
}

.swagger-ui .topbar .download-url-wrapper .select-label select {
    border-color: var(--lbc-casal) !important;
}

.swagger-ui .topbar .download-url-wrapper input[type=text] {
    border-color: var(--lbc-casal) !important;
    background: var(--lbc-cyprus);
    color: var(--lbc-card-bg);
}

.swagger-ui .topbar .download-url-wrapper .download-url-button {
    background: var(--lbc-casal) !important;
    color: var(--lbc-card-bg) !important;
    border: 1px solid var(--lbc-cyan);
}

.swagger-ui .topbar .download-url-wrapper .download-url-button:hover {
    background: var(--lbc-cyprus) !important;
}

.swagger-ui .topbar a {
    max-width: 180px;
}

/* Hide default swagger logo */
.swagger-ui .topbar-wrapper img[alt="Swagger UI"],
.swagger-ui .topbar-wrapper .link svg {
    display: none;
}

/* --- Info section (title area) --- */
.swagger-ui .info {
    margin: 30px 0;
}

.swagger-ui .info .title {
    color: var(--lbc-daintree) !important;
    font-weight: 700;
}

.swagger-ui .info .title:before {
    content: "";
    background-image: url("../images/logo_linkbycar.png");
    background-size: 7.5em 1.5em;
    height: 1.5em;
    width: 7.5em;
    margin-right: -0.3em;
    display: inline-block;
    vertical-align: middle;
}

.swagger-ui .info .title small.version-stamp {
    background-color: var(--lbc-casal) !important;
}

.swagger-ui .info a {
    color: var(--lbc-casal) !important;
}

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

/* --- Scheme container --- */
.swagger-ui .scheme-container {
    background: var(--lbc-bg) !important;
    border: none;
    border-radius: 0;
    box-shadow: 0 4px 4px -4px rgba(0, 0, 0, .15);
    margin: 0 0 20px;
    padding: 30px 0;
}

/* --- Authorize button --- */
.swagger-ui .btn.authorize {
    color: var(--lbc-casal) !important;
    border-color: var(--lbc-casal) !important;
}

.swagger-ui .btn.authorize:hover {
    background-color: var(--lbc-casal) !important;
    color: var(--lbc-card-bg) !important;
}

.swagger-ui .btn.authorize svg {
    fill: var(--lbc-casal) !important;
}

.swagger-ui .btn.authorize:hover svg {
    fill: var(--lbc-card-bg) !important;
}

/* --- Auth dialog --- */
.swagger-ui .dialog-ux .modal-ux-header h3 {
    color: var(--lbc-daintree);
}

.swagger-ui .btn.modal-btn.auth.authorize {
    background-color: var(--lbc-casal) !important;
    color: var(--lbc-card-bg) !important;
    border-color: var(--lbc-casal) !important;
}

.swagger-ui .btn.modal-btn.auth.authorize:hover {
    background-color: var(--lbc-cyprus) !important;
    border-color: var(--lbc-cyprus) !important;
}

.swagger-ui .btn.modal-btn.auth.btn-done {
    color: var(--lbc-casal) !important;
    border-color: var(--lbc-casal) !important;
}

/* --- Operation tags (sections) --- */
.swagger-ui .opblock-tag {
    border-bottom: 1px solid var(--lbc-border) !important;
    color: var(--lbc-daintree) !important;
    font-weight: 600;
}

.swagger-ui .opblock-tag:hover {
    background: rgba(0, 101, 117, 0.04);
}

/* --- Filter input --- */
.swagger-ui .filter .operation-filter-input {
    border: 2px solid var(--lbc-border) !important;
    border-radius: 6px;
}

.swagger-ui .filter .operation-filter-input:focus {
    border-color: var(--lbc-casal) !important;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 101, 117, 0.15);
}

/* --- HTTP method blocks --- */
.swagger-ui .opblock.opblock-get {
    border-color: var(--lbc-http-get) !important;
    background: rgba(0, 101, 117, 0.04);
}

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

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

.swagger-ui .opblock.opblock-post {
    border-color: var(--lbc-http-post) !important;
    background: rgba(47, 179, 68, 0.04);
}

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

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

.swagger-ui .opblock.opblock-put {
    border-color: var(--lbc-http-put) !important;
    background: rgba(247, 103, 7, 0.04);
}

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

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

.swagger-ui .opblock.opblock-delete {
    border-color: var(--lbc-http-delete) !important;
    background: rgba(214, 57, 57, 0.04);
}

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

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

.swagger-ui .opblock.opblock-patch {
    border-color: var(--lbc-http-patch) !important;
    background: rgba(174, 62, 201, 0.04);
}

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

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

/* Method badges */
.swagger-ui .opblock .opblock-summary-method {
    border-radius: 6px !important;
    font-weight: 700;
    min-width: 80px;
    text-align: center;
}

/* Expanded operation body */
.swagger-ui .opblock .opblock-section-header {
    background: var(--lbc-bg) !important;
    border-bottom: 1px solid var(--lbc-border);
}

.swagger-ui .opblock .opblock-section-header h4 {
    color: var(--lbc-daintree);
}

/* --- Try it out / Execute buttons --- */
.swagger-ui .btn.try-out__btn {
    color: var(--lbc-casal) !important;
    border-color: var(--lbc-casal) !important;
}

.swagger-ui .btn.try-out__btn:hover {
    background-color: var(--lbc-casal) !important;
    color: var(--lbc-card-bg) !important;
}

.swagger-ui .btn.execute {
    background-color: var(--lbc-casal) !important;
    color: var(--lbc-card-bg) !important;
    border-color: var(--lbc-casal) !important;
    border-radius: 6px;
}

.swagger-ui .btn.execute:hover {
    background-color: var(--lbc-cyprus) !important;
    border-color: var(--lbc-cyprus) !important;
}

/* --- Response section --- */
.swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5 {
    color: var(--lbc-daintree);
}

.swagger-ui .response-col_status {
    color: var(--lbc-daintree) !important;
    font-weight: 600;
}

.swagger-ui table thead tr td,
.swagger-ui table thead tr th {
    color: var(--lbc-daintree);
    border-bottom: 1px solid var(--lbc-border);
}

/* --- Models section --- */
.swagger-ui section.models {
    border: 1px solid var(--lbc-border) !important;
    border-radius: 8px;
}

.swagger-ui section.models h4 {
    color: var(--lbc-daintree) !important;
}

.swagger-ui section.models .model-container {
    background: var(--lbc-card-bg) !important;
    border-radius: 4px;
}

.swagger-ui .model-title {
    color: var(--lbc-daintree) !important;
    font-weight: 600;
}

/* --- Links --- */
.swagger-ui a {
    color: var(--lbc-casal);
}

.swagger-ui a:hover {
    color: var(--lbc-cyprus);
}

/* --- Select / inputs --- */
.swagger-ui select {
    border-color: var(--lbc-border);
    border-radius: 4px;
}

.swagger-ui select:focus,
.swagger-ui input[type=text]:focus,
.swagger-ui textarea:focus {
    border-color: var(--lbc-casal);
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 101, 117, 0.15);
}

/* --- Loading bar --- */
.swagger-ui .loading-container .loading::after {
    color: var(--lbc-casal);
}

/* --- Brand grid --- */
.swagger-ui #brands {
    display: flex !important;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    justify-content: flex-start;
    padding: 1rem 0;
}

.swagger-ui #brands a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 56px;
    padding: 6px;
    border: 1px solid var(--lbc-border);
    border-radius: 0.5rem;
    background: var(--lbc-card-bg);
    transition: border-color 0.15s, box-shadow 0.15s;
    position: relative;
}

.swagger-ui #brands a::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: calc(100% + 4px);
    left: 50%;
    transform: translateX(-50%) scale(0);
    background: var(--lbc-daintree);
    color: #fff;
    font-size: 11px;
    font-weight: 500;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    line-height: 1.5;
    padding: 2px 6px;
    border-radius: 3px;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transition: all 0.1s;
    z-index: 100;
}

.swagger-ui #brands a:hover::after {
    transform: translateX(-50%) scale(1);
    opacity: 1;
}

.swagger-ui #brands a:hover {
    border-color: var(--lbc-casal);
    box-shadow: 0 2px 8px rgba(0, 101, 117, 0.12);
}

.swagger-ui #brands a img {
    max-height: 36px !important;
    max-width: 56px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain;
}

.badge {
    background-color: var(--lbc-casal);
    color: var(--lbc-card-bg);
    padding: 4px 8px;
    text-align: center;
    border-radius: 5px;
    font-size: 0.85em;
    font-weight: 600;
}

/* --- Server dropdown --- */
.swagger-ui .servers > label select {
    border-color: var(--lbc-border);
    border-radius: 4px;
}

/* --- Wrapper card feel --- */
.swagger-ui .wrapper {
    max-width: 1460px;
}

.swagger-ui .opblock {
    border-radius: 8px !important;
    margin-bottom: 8px;
    box-shadow: 0 1px 2px rgba(0, 36, 50, 0.04);
}

/* --- Scrollbar (Webkit) --- */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--lbc-bg);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb {
    background: var(--lbc-casal);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--lbc-cyprus);
}

/* --- Markdown description --- */
.swagger-ui .markdown p,
.swagger-ui .renderedMarkdown p {
    color: var(--lbc-text);
}

.swagger-ui .markdown code,
.swagger-ui .renderedMarkdown code {
    background: rgba(0, 101, 117, 0.08);
    color: var(--lbc-cyprus);
    padding: 2px 6px;
    border-radius: 4px;
}

/* END LinkByCar Swagger UI Theme */
