/* PointsKash Custom Swagger UI — Dark Theme
   Matches the PointsKashPortal design system */

:root {
    --pk-bg-primary: #0a0a0f;
    --pk-bg-secondary: #12121a;
    --pk-bg-tertiary: #1a1a24;
    --pk-bg-card: #16161f;
    --pk-bg-hover: #1e1e2a;
    --pk-border-color: rgba(255, 255, 255, 0.06);
    --pk-border-light: rgba(255, 255, 255, 0.1);
    --pk-text-primary: #f1f1f3;
    --pk-text-secondary: #a1a1aa;
    --pk-text-muted: #71717a;
    --pk-accent-primary: #6366f1;
    --pk-accent-secondary: #8b5cf6;
    --pk-success: #22c55e;
    --pk-warning: #f59e0b;
    --pk-danger: #ef4444;
    --pk-info: #06b6d4;
    --pk-radius-sm: 8px;
    --pk-radius-md: 12px;
    --pk-radius-lg: 16px;
}

/* === BASE === */

html {
    box-sizing: border-box;
}

body {
    background: var(--pk-bg-primary) !important;
    color: var(--pk-text-primary) !important;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
}

/* === TOP BAR === */

.swagger-ui .topbar {
    background: #000000 !important;
    border-bottom: 1px solid var(--pk-border-color);
    padding: 12px 24px !important;
}

.swagger-ui .topbar .download-url-wrapper .select-label {
    color: var(--pk-text-secondary) !important;
}

.swagger-ui .topbar .download-url-wrapper .select-label select {
    background: var(--pk-bg-tertiary) !important;
    color: var(--pk-text-primary) !important;
    border: 1px solid var(--pk-border-light) !important;
    border-radius: var(--pk-radius-sm) !important;
}

.swagger-ui .topbar .download-url-wrapper .download-url-button {
    background: linear-gradient(135deg, #6366f1, #8b5cf6) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--pk-radius-sm) !important;
    font-weight: 600 !important;
}

.swagger-ui .topbar a {
    max-width: none;
}

.swagger-ui .topbar .topbar-wrapper .link img,
.swagger-ui .topbar .topbar-wrapper .link svg {
    display: none;
}

.swagger-ui .topbar .topbar-wrapper .link::after {
    content: 'PointsKash API';
    font-size: 20px;
    font-weight: 700;
    color: var(--pk-text-primary);
    letter-spacing: 0.5px;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* === INFO SECTION === */

.swagger-ui .info {
    margin: 30px 0 !important;
}

.swagger-ui .info .title {
    color: var(--pk-text-primary) !important;
    font-weight: 700 !important;
}

.swagger-ui .info .title small {
    background: linear-gradient(135deg, #6366f1, #8b5cf6) !important;
    border-radius: 20px !important;
    padding: 4px 12px !important;
    font-weight: 600 !important;
}

.swagger-ui .info .title small pre {
    color: #fff !important;
}

.swagger-ui .info .description,
.swagger-ui .info .description p {
    color: var(--pk-text-secondary) !important;
}

.swagger-ui .info a {
    color: var(--pk-accent-primary) !important;
}

.swagger-ui .info a:hover {
    color: var(--pk-accent-secondary) !important;
}

/* === SCHEME CONTAINER === */

.swagger-ui .scheme-container {
    background: var(--pk-bg-secondary) !important;
    border: 1px solid var(--pk-border-color) !important;
    border-radius: var(--pk-radius-md) !important;
    padding: 16px 24px !important;
    box-shadow: none !important;
}

.swagger-ui .scheme-container .schemes > label {
    color: var(--pk-text-secondary) !important;
}

.swagger-ui .scheme-container select {
    background: var(--pk-bg-tertiary) !important;
    color: var(--pk-text-primary) !important;
    border: 1px solid var(--pk-border-light) !important;
    border-radius: var(--pk-radius-sm) !important;
}

/* === OPERATION TAGS (Section Headers) === */

.swagger-ui .opblock-tag-section {
    margin-bottom: 12px !important;
}

.swagger-ui .opblock-tag {
    color: var(--pk-text-primary) !important;
    border-bottom: 1px solid var(--pk-border-color) !important;
    padding: 14px 20px !important;
    font-weight: 600 !important;
    transition: background 0.2s ease !important;
}

.swagger-ui .opblock-tag:hover {
    background: var(--pk-bg-hover) !important;
}

.swagger-ui .opblock-tag small {
    color: var(--pk-text-muted) !important;
}

.swagger-ui .opblock-tag svg {
    fill: var(--pk-text-muted) !important;
}

/* === OPERATION BLOCKS === */

.swagger-ui .opblock {
    border-radius: var(--pk-radius-md) !important;
    border: 1px solid var(--pk-border-color) !important;
    margin-bottom: 8px !important;
    box-shadow: none !important;
    background: var(--pk-bg-card) !important;
    overflow: hidden;
}

.swagger-ui .opblock .opblock-summary {
    border: none !important;
    padding: 10px 16px !important;
}

.swagger-ui .opblock .opblock-summary:hover {
    background: var(--pk-bg-hover) !important;
}

.swagger-ui .opblock .opblock-summary-method {
    border-radius: 6px !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    min-width: 70px !important;
    text-align: center !important;
    padding: 6px 12px !important;
}

.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-path a {
    color: var(--pk-text-primary) !important;
    font-family: 'SF Mono', 'Fira Code', monospace !important;
    font-size: 13px !important;
}

.swagger-ui .opblock .opblock-summary-description {
    color: var(--pk-text-secondary) !important;
    font-size: 13px !important;
}

/* GET */
.swagger-ui .opblock.opblock-get {
    background: var(--pk-bg-card) !important;
    border-color: rgba(34, 197, 94, 0.2) !important;
}

.swagger-ui .opblock.opblock-get .opblock-summary-method {
    background: rgba(34, 197, 94, 0.15) !important;
    color: var(--pk-success) !important;
}

.swagger-ui .opblock.opblock-get .opblock-summary {
    border-color: transparent !important;
}

/* POST */
.swagger-ui .opblock.opblock-post {
    background: var(--pk-bg-card) !important;
    border-color: rgba(99, 102, 241, 0.2) !important;
}

.swagger-ui .opblock.opblock-post .opblock-summary-method {
    background: rgba(99, 102, 241, 0.15) !important;
    color: var(--pk-accent-primary) !important;
}

.swagger-ui .opblock.opblock-post .opblock-summary {
    border-color: transparent !important;
}

/* PUT */
.swagger-ui .opblock.opblock-put {
    background: var(--pk-bg-card) !important;
    border-color: rgba(245, 158, 11, 0.2) !important;
}

.swagger-ui .opblock.opblock-put .opblock-summary-method {
    background: rgba(245, 158, 11, 0.15) !important;
    color: var(--pk-warning) !important;
}

.swagger-ui .opblock.opblock-put .opblock-summary {
    border-color: transparent !important;
}

/* PATCH */
.swagger-ui .opblock.opblock-patch {
    background: var(--pk-bg-card) !important;
    border-color: rgba(6, 182, 212, 0.2) !important;
}

.swagger-ui .opblock.opblock-patch .opblock-summary-method {
    background: rgba(6, 182, 212, 0.15) !important;
    color: var(--pk-info) !important;
}

.swagger-ui .opblock.opblock-patch .opblock-summary {
    border-color: transparent !important;
}

/* DELETE */
.swagger-ui .opblock.opblock-delete {
    background: var(--pk-bg-card) !important;
    border-color: rgba(239, 68, 68, 0.2) !important;
}

.swagger-ui .opblock.opblock-delete .opblock-summary-method {
    background: rgba(239, 68, 68, 0.15) !important;
    color: var(--pk-danger) !important;
}

.swagger-ui .opblock.opblock-delete .opblock-summary {
    border-color: transparent !important;
}

/* === EXPANDED OPERATION BODY === */

.swagger-ui .opblock-body {
    background: var(--pk-bg-primary) !important;
}

.swagger-ui .opblock-body pre {
    background: var(--pk-bg-secondary) !important;
    color: var(--pk-text-primary) !important;
    border: 1px solid var(--pk-border-color) !important;
    border-radius: var(--pk-radius-sm) !important;
    font-family: 'SF Mono', 'Fira Code', monospace !important;
    font-size: 13px !important;
}

.swagger-ui .opblock-body pre.microlight {
    background: var(--pk-bg-secondary) !important;
    color: var(--pk-text-primary) !important;
    border: 1px solid var(--pk-border-color) !important;
    border-radius: var(--pk-radius-sm) !important;
}

.swagger-ui .opblock-description-wrapper,
.swagger-ui .opblock-external-docs-wrapper {
    color: var(--pk-text-secondary) !important;
    padding: 16px 20px !important;
}

.swagger-ui .opblock-description-wrapper p,
.swagger-ui .opblock-description-wrapper h4 {
    color: var(--pk-text-secondary) !important;
}

/* === PARAMETERS === */

.swagger-ui .opblock-section-header {
    background: var(--pk-bg-secondary) !important;
    border-bottom: 1px solid var(--pk-border-color) !important;
    box-shadow: none !important;
}

.swagger-ui .opblock-section-header h4 {
    color: var(--pk-text-primary) !important;
    font-weight: 600 !important;
}

.swagger-ui .opblock-section-header label {
    color: var(--pk-text-secondary) !important;
}

.swagger-ui table thead tr th,
.swagger-ui table thead tr td {
    color: var(--pk-text-muted) !important;
    border-bottom: 1px solid var(--pk-border-color) !important;
    font-size: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    font-weight: 600 !important;
}

.swagger-ui table tbody tr td {
    color: var(--pk-text-primary) !important;
    border-bottom: 1px solid var(--pk-border-color) !important;
}

.swagger-ui .parameter__name {
    color: var(--pk-text-primary) !important;
    font-weight: 600 !important;
}

.swagger-ui .parameter__name.required::after {
    color: var(--pk-danger) !important;
}

.swagger-ui .parameter__type {
    color: var(--pk-text-muted) !important;
    font-size: 12px !important;
}

.swagger-ui .parameter__in {
    color: var(--pk-text-muted) !important;
}

/* === INPUTS === */

.swagger-ui input[type="text"],
.swagger-ui input[type="password"],
.swagger-ui input[type="search"],
.swagger-ui input[type="email"],
.swagger-ui input[type="file"],
.swagger-ui textarea,
.swagger-ui select {
    background: var(--pk-bg-tertiary) !important;
    color: var(--pk-text-primary) !important;
    border: 1px solid var(--pk-border-light) !important;
    border-radius: var(--pk-radius-sm) !important;
    padding: 8px 12px !important;
    transition: border-color 0.2s ease !important;
}

.swagger-ui input:focus,
.swagger-ui textarea:focus,
.swagger-ui select:focus {
    border-color: var(--pk-accent-primary) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15) !important;
}

/* === BUTTONS === */

.swagger-ui .btn {
    border-radius: var(--pk-radius-sm) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    transition: all 0.2s ease !important;
    box-shadow: none !important;
}

.swagger-ui .btn.execute {
    background: linear-gradient(135deg, #6366f1, #8b5cf6) !important;
    color: #fff !important;
    border: none !important;
    padding: 8px 24px !important;
}

.swagger-ui .btn.execute:hover {
    opacity: 0.9 !important;
    transform: translateY(-1px) !important;
}

.swagger-ui .btn.cancel {
    background: transparent !important;
    color: var(--pk-danger) !important;
    border: 1px solid rgba(239, 68, 68, 0.3) !important;
}

.swagger-ui .btn.cancel:hover {
    background: rgba(239, 68, 68, 0.1) !important;
}

.swagger-ui .btn.authorize {
    background: transparent !important;
    color: var(--pk-accent-primary) !important;
    border: 1px solid rgba(99, 102, 241, 0.3) !important;
}

.swagger-ui .btn.authorize:hover {
    background: rgba(99, 102, 241, 0.1) !important;
}

.swagger-ui .btn.authorize svg {
    fill: var(--pk-accent-primary) !important;
}

/* === RESPONSES === */

.swagger-ui .responses-wrapper {
    background: transparent !important;
}

.swagger-ui .responses-inner {
    padding: 16px 20px !important;
}

.swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5 {
    color: var(--pk-text-primary) !important;
}

.swagger-ui .response-col_status {
    color: var(--pk-text-primary) !important;
    font-weight: 600 !important;
    font-family: 'SF Mono', 'Fira Code', monospace !important;
}

.swagger-ui .response-col_description {
    color: var(--pk-text-secondary) !important;
}

.swagger-ui .response-col_links {
    color: var(--pk-text-muted) !important;
}

.swagger-ui .responses-table .response > td {
    border-bottom: 1px solid var(--pk-border-color) !important;
}

/* === MODELS === */

.swagger-ui section.models {
    border: 1px solid var(--pk-border-color) !important;
    border-radius: var(--pk-radius-md) !important;
    background: var(--pk-bg-card) !important;
}

.swagger-ui section.models h4 {
    color: var(--pk-text-primary) !important;
    border-bottom: 1px solid var(--pk-border-color) !important;
}

.swagger-ui section.models .model-container {
    background: var(--pk-bg-secondary) !important;
    border-radius: var(--pk-radius-sm) !important;
    margin: 4px 0 !important;
}

.swagger-ui .model-box {
    background: var(--pk-bg-secondary) !important;
}

.swagger-ui .model {
    color: var(--pk-text-primary) !important;
}

.swagger-ui .model .property {
    color: var(--pk-accent-primary) !important;
}

.swagger-ui .model .property.primitive {
    color: var(--pk-info) !important;
}

.swagger-ui .model-title {
    color: var(--pk-text-primary) !important;
    font-weight: 600 !important;
}

.swagger-ui span.model-title__text {
    color: var(--pk-text-primary) !important;
}

/* === AUTH DIALOG === */

.swagger-ui .dialog-ux .modal-ux {
    background: var(--pk-bg-card) !important;
    border: 1px solid var(--pk-border-color) !important;
    border-radius: var(--pk-radius-lg) !important;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5) !important;
}

.swagger-ui .dialog-ux .modal-ux-header {
    border-bottom: 1px solid var(--pk-border-color) !important;
}

.swagger-ui .dialog-ux .modal-ux-header h3 {
    color: var(--pk-text-primary) !important;
    font-weight: 700 !important;
}

.swagger-ui .dialog-ux .modal-ux-content {
    color: var(--pk-text-secondary) !important;
}

.swagger-ui .dialog-ux .modal-ux-content p {
    color: var(--pk-text-secondary) !important;
}

.swagger-ui .dialog-ux .modal-ux-content h4 {
    color: var(--pk-text-primary) !important;
}

.swagger-ui .dialog-ux .modal-ux .btn-done {
    background: linear-gradient(135deg, #6366f1, #8b5cf6) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--pk-radius-sm) !important;
}

.swagger-ui .dialog-ux .backdrop-ux {
    background: rgba(0, 0, 0, 0.6) !important;
    backdrop-filter: blur(4px) !important;
}

/* === LOADING === */

.swagger-ui .loading-container .loading::after {
    color: var(--pk-text-muted) !important;
}

/* === SCROLLBAR === */

::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--pk-bg-primary);
}

::-webkit-scrollbar-thumb {
    background: var(--pk-bg-tertiary);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--pk-bg-hover);
}

/* === MISC OVERRIDES === */

.swagger-ui .wrapper {
    max-width: 1400px !important;
    padding: 0 24px !important;
}

.swagger-ui .opblock-tag a {
    color: var(--pk-text-primary) !important;
}

.swagger-ui .opblock-tag a:hover {
    color: var(--pk-accent-primary) !important;
}

.swagger-ui .markdown p,
.swagger-ui .markdown li,
.swagger-ui .renderedMarkdown p {
    color: var(--pk-text-secondary) !important;
}

.swagger-ui .markdown code,
.swagger-ui .renderedMarkdown code {
    background: var(--pk-bg-tertiary) !important;
    color: var(--pk-accent-primary) !important;
    padding: 2px 6px !important;
    border-radius: 4px !important;
    font-family: 'SF Mono', 'Fira Code', monospace !important;
    font-size: 12px !important;
}

.swagger-ui .copy-to-clipboard {
    background: var(--pk-bg-tertiary) !important;
    border-radius: var(--pk-radius-sm) !important;
}

.swagger-ui .copy-to-clipboard button {
    background: transparent !important;
}

.swagger-ui .arrow {
    fill: var(--pk-text-muted) !important;
}

.swagger-ui svg.arrow {
    fill: var(--pk-text-muted) !important;
}

.swagger-ui .expand-operation svg {
    fill: var(--pk-text-muted) !important;
}

.swagger-ui .try-out__btn {
    color: var(--pk-accent-primary) !important;
    border-color: rgba(99, 102, 241, 0.3) !important;
    border-radius: var(--pk-radius-sm) !important;
}

.swagger-ui .try-out__btn:hover {
    background: rgba(99, 102, 241, 0.1) !important;
}

/* JSON Syntax highlighting in dark theme */
.swagger-ui .highlight-code .microlight {
    background: var(--pk-bg-secondary) !important;
    color: var(--pk-text-primary) !important;
}

.swagger-ui .microlight .string { color: var(--pk-success) !important; }
.swagger-ui .microlight .number { color: var(--pk-warning) !important; }
.swagger-ui .microlight .boolean { color: var(--pk-info) !important; }
.swagger-ui .microlight .null { color: var(--pk-text-muted) !important; }

/* Tab panels */
.swagger-ui .tab li {
    color: var(--pk-text-muted) !important;
}

.swagger-ui .tab li.active {
    color: var(--pk-text-primary) !important;
}

.swagger-ui .tab li button.tablinks {
    color: inherit !important;
    background: transparent !important;
}

/* Server response curl/url */
.swagger-ui .request-url pre {
    background: var(--pk-bg-secondary) !important;
    color: var(--pk-text-primary) !important;
    border: 1px solid var(--pk-border-color) !important;
    border-radius: var(--pk-radius-sm) !important;
}

.swagger-ui .request-url h4 {
    color: var(--pk-text-primary) !important;
}

/* Live response */
.swagger-ui .live-responses-table .response-col_status {
    color: var(--pk-text-primary) !important;
}

.swagger-ui .curl-command .copy-to-clipboard {
    background: var(--pk-bg-tertiary) !important;
}
