/* =====================================================================
   URL Zone API — Swagger UI presentation layer.
   Re-skins the stock swagger-ui-dist markup with URL Zone's brand
   (same palette/spacing/radius scale as the public site's design tokens,
   duplicated here rather than shared because this page is served from a
   different origin — api.urlzone.in — under its own CSP with no external
   stylesheet host allowed). Nothing here touches Swagger's own DOM
   structure, class names, or behaviour — CSS only.
   ===================================================================== */

:root {
    --uz-primary:        #4F46E5;
    --uz-primary-hover:  #4338CA;
    --uz-primary-light:  rgba(79, 70, 229, .10);
    --uz-get:            #0ea5e9;
    --uz-post:           #10b981;
    --uz-put:            #f59e0b;
    --uz-patch:          #8b5cf6;
    --uz-delete:         #ef4444;
    --uz-bg:             #F9FAFB;
    --uz-surface:        #FFFFFF;
    --uz-surface-2:      #F3F4F6;
    --uz-border:         #E5E7EB;
    --uz-text:           #111827;
    --uz-text-secondary: #374151;
    --uz-text-muted:     #6B7280;
    --uz-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --uz-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    --uz-radius-sm: 6px;
    --uz-radius-md: 10px;
    --uz-radius-lg: 14px;
    --uz-shadow-sm: 0 1px 6px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
    --uz-shadow-md: 0 4px 16px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,.04);
}

html, body {
    background: var(--uz-bg);
    font-family: var(--uz-font);
}
.swagger-ui, .swagger-ui * {
    font-family: var(--uz-font);
}

/* ── URL Zone brand header ─────────────────────────────────────────── */
.uz-api-header {
    background: linear-gradient(135deg, #0f0c29 0%, #1a1440 55%, #241a5e 100%);
    color: #fff;
    padding-bottom: 40px;
}
.uz-api-header-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    max-width: 1460px;
    margin: 0 auto;
    padding: 18px 32px 0;
}
.uz-api-brand {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    text-decoration: none !important;
    color: #fff !important;
}
.uz-api-brand-icon { width: 26px; height: 26px; color: #818cf8; flex-shrink: 0; }
.uz-api-brand span {
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -.2px;
}
.uz-api-nav { display: flex; gap: 22px; flex-wrap: wrap; }
.uz-api-nav a {
    color: rgba(255,255,255,.75) !important;
    text-decoration: none !important;
    font-size: .875rem;
    font-weight: 600;
    transition: color .15s;
}
.uz-api-nav a:hover { color: #fff !important; }

.uz-api-hero {
    max-width: 1460px;
    margin: 0 auto;
    padding: 34px 32px 0;
    text-align: center;
}
.uz-api-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .8px;
    padding: 5px 14px;
    border-radius: 50px;
    background: rgba(99,102,241,.18);
    color: #a5b4fc;
    margin-bottom: 14px;
}
.uz-api-hero h1 {
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 800;
    margin: 0 0 8px;
    letter-spacing: -.3px;
}
.uz-api-hero p {
    color: rgba(255,255,255,.65);
    font-size: .95rem;
    margin: 0 0 6px;
}

/* ── Swagger UI root: sit inside the same max-width column, lift onto the page as a card stack ── */
.swagger-ui .wrapper {
    max-width: 1460px;
    padding: 0 32px;
}
.swagger-ui { margin-top: -22px; }

/* ── Info block (title/description/contact from the OpenAPI doc) ───── */
.swagger-ui .information-container { padding-top: 0; }
.swagger-ui .info {
    background: var(--uz-surface);
    border: 1px solid var(--uz-border);
    border-radius: var(--uz-radius-lg);
    box-shadow: var(--uz-shadow-md);
    padding: 26px 30px;
    margin: 0 0 28px;
}
.swagger-ui .info .title {
    color: var(--uz-text);
    font-weight: 800;
    font-size: 1.4rem;
}
.swagger-ui .info .title small.version-stamp,
.swagger-ui .info .title small {
    background: var(--uz-primary);
    box-shadow: none;
}
.swagger-ui .info li, .swagger-ui .info p, .swagger-ui .info table {
    color: var(--uz-text-secondary);
    font-size: .9rem;
    line-height: 1.75;
}
.swagger-ui .info code {
    background: var(--uz-primary-light);
    color: var(--uz-primary-hover);
    border-radius: 4px;
    padding: 2px 7px;
    font-size: .85em;
}
.swagger-ui .info a { color: var(--uz-primary) !important; font-weight: 600; }
.swagger-ui .info .link { padding: 2px 0; }
.swagger-ui .info hgroup.main { margin-bottom: 6px; }

/* ── Scheme / servers selector + Authorize button ───────────────────── */
.swagger-ui .scheme-container {
    background: transparent;
    box-shadow: none;
    padding: 0 0 20px;
}
.swagger-ui .btn.authorize {
    background: var(--uz-primary);
    border-color: var(--uz-primary);
    color: #fff;
    font-weight: 700;
    border-radius: var(--uz-radius-sm);
    box-shadow: var(--uz-shadow-sm);
}
.swagger-ui .btn.authorize:hover { background: var(--uz-primary-hover); border-color: var(--uz-primary-hover); }
.swagger-ui .btn.authorize svg { fill: #fff; }
.swagger-ui .authorization__btn svg { fill: var(--uz-primary); }

/* ── Operation group headers (tags) ─────────────────────────────────── */
.swagger-ui .opblock-tag {
    border-bottom: 1px solid var(--uz-border);
    color: var(--uz-text);
    font-weight: 800;
    font-size: 1.05rem;
    padding: 12px 4px;
}
.swagger-ui .opblock-tag small {
    color: var(--uz-text-muted);
    font-weight: 400;
}
.swagger-ui .opblock-tag:hover { background: transparent; }

/* ── Operation cards ─────────────────────────────────────────────────── */
.swagger-ui .opblock {
    border-radius: var(--uz-radius-md);
    box-shadow: var(--uz-shadow-sm);
    border: 1px solid var(--uz-border);
    margin: 0 0 14px;
    transition: box-shadow .15s, transform .15s;
}
.swagger-ui .opblock:hover { box-shadow: var(--uz-shadow-md); }
.swagger-ui .opblock .opblock-summary { border: none; padding: 6px 10px; }
.swagger-ui .opblock .opblock-summary-method {
    border-radius: var(--uz-radius-sm);
    font-weight: 800;
    font-size: .78rem;
    min-width: 74px;
    text-align: center;
    box-shadow: none;
}
.swagger-ui .opblock.opblock-get { background: rgba(14,165,233,.04); border-color: rgba(14,165,233,.28); }
.swagger-ui .opblock.opblock-get .opblock-summary-method { background: var(--uz-get); }
.swagger-ui .opblock.opblock-get .tab-header .tab-item.active h4 span::after { background: var(--uz-get); }

.swagger-ui .opblock.opblock-post { background: rgba(16,185,129,.04); border-color: rgba(16,185,129,.28); }
.swagger-ui .opblock.opblock-post .opblock-summary-method { background: var(--uz-post); }

.swagger-ui .opblock.opblock-put { background: rgba(245,158,11,.04); border-color: rgba(245,158,11,.28); }
.swagger-ui .opblock.opblock-put .opblock-summary-method { background: var(--uz-put); }

.swagger-ui .opblock.opblock-patch { background: rgba(139,92,246,.04); border-color: rgba(139,92,246,.28); }
.swagger-ui .opblock.opblock-patch .opblock-summary-method { background: var(--uz-patch); }

.swagger-ui .opblock.opblock-delete { background: rgba(239,68,68,.04); border-color: rgba(239,68,68,.28); }
.swagger-ui .opblock.opblock-delete .opblock-summary-method { background: var(--uz-delete); }

.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-path__deprecated { color: var(--uz-text); font-weight: 700; }
.swagger-ui .opblock .opblock-summary-description { color: var(--uz-text-muted); }
.swagger-ui .opblock-description-wrapper p, .swagger-ui .opblock-section-header h4 {
    color: var(--uz-text-secondary);
}
.swagger-ui .opblock-section-header {
    background: var(--uz-surface-2);
    box-shadow: none;
    border-radius: var(--uz-radius-sm);
}

/* ── Buttons: execute / try it out / cancel / clear ─────────────────── */
.swagger-ui .btn.try-out__btn,
.swagger-ui .btn.execute {
    background: var(--uz-primary);
    color: #fff;
    border-color: var(--uz-primary);
    border-radius: var(--uz-radius-sm);
    font-weight: 700;
    box-shadow: none;
}
.swagger-ui .btn.try-out__btn:hover,
.swagger-ui .btn.execute:hover { background: var(--uz-primary-hover); border-color: var(--uz-primary-hover); }
.swagger-ui .btn.cancel {
    background: #fff;
    color: var(--uz-delete);
    border-color: var(--uz-delete);
    border-radius: var(--uz-radius-sm);
}
.swagger-ui .btn.clear {
    border-radius: var(--uz-radius-sm);
}

/* ── Parameters / inputs ─────────────────────────────────────────────── */
.swagger-ui table thead tr td, .swagger-ui table thead tr th {
    color: var(--uz-text-muted);
    border-bottom: 1px solid var(--uz-border);
    font-weight: 700;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .4px;
}
.swagger-ui .parameter__name { color: var(--uz-text); font-weight: 700; }
.swagger-ui .parameter__type { color: var(--uz-text-muted); }
.swagger-ui input[type=text], .swagger-ui input[type=password],
.swagger-ui input[type=search], .swagger-ui input[type=email],
.swagger-ui textarea, .swagger-ui select {
    border: 1px solid var(--uz-border);
    border-radius: var(--uz-radius-sm);
    font-family: var(--uz-mono);
}
.swagger-ui input[type=text]:focus, .swagger-ui textarea:focus, .swagger-ui select:focus {
    border-color: var(--uz-primary);
    outline: none;
    box-shadow: 0 0 0 3px var(--uz-primary-light);
}

/* ── Responses / code blocks / models ─────────────────────────────────── */
.swagger-ui .responses-inner h4, .swagger-ui .responses-inner h5 { color: var(--uz-text); }
.swagger-ui table.responses-table .response-col_status { color: var(--uz-text); font-weight: 700; }
.swagger-ui .response-col_description__inner p, .swagger-ui .renderedMarkdown p { color: var(--uz-text-secondary); }

.swagger-ui .highlight-code, .swagger-ui pre.microlight, .swagger-ui .body-param__text {
    background: #0f172a !important;
    border-radius: var(--uz-radius-sm);
}
.swagger-ui .highlight-code .microlight, .swagger-ui pre.microlight { color: #e2e8f0; font-family: var(--uz-mono); }

.swagger-ui .model-box {
    background: var(--uz-surface-2);
    border-radius: var(--uz-radius-sm);
}
.swagger-ui .model-title { color: var(--uz-text); font-weight: 700; }
.swagger-ui section.models {
    border: 1px solid var(--uz-border);
    border-radius: var(--uz-radius-md);
    background: var(--uz-surface);
}
.swagger-ui section.models .model-container {
    background: var(--uz-surface);
    border-radius: var(--uz-radius-sm);
}
.swagger-ui section.models h4 { color: var(--uz-text); }

/* ── Locks on secured operations ─────────────────────────────────────── */
.swagger-ui .authorization__btn .locked, .swagger-ui .opblock-summary .authorization__btn svg { fill: var(--uz-text-muted); }

/* ── Misc ─────────────────────────────────────────────────────────────── */
.swagger-ui .errors-wrapper {
    border-radius: var(--uz-radius-md);
    border-color: var(--uz-delete);
}
::-webkit-scrollbar { height: 10px; width: 10px; }
::-webkit-scrollbar-thumb { background: #c7d2fe; border-radius: 8px; }

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .swagger-ui .wrapper, .uz-api-header-bar, .uz-api-hero { padding-left: 18px; padding-right: 18px; }
    .swagger-ui .info { padding: 20px; }
}
@media (max-width: 575.98px) {
    .uz-api-header-bar { justify-content: center; text-align: center; }
    .uz-api-nav { justify-content: center; gap: 14px; }
    .uz-api-hero { padding-top: 24px; }
    .uz-api-hero h1 { font-size: 1.4rem; }
    .swagger-ui .opblock .opblock-summary { flex-wrap: wrap; }
    .swagger-ui .opblock .opblock-summary-method { min-width: 60px; }
}
