/* ============================================================
   Trafilerie del Monferrato — Tema Swagger UI
   Progetto: RowS.Api.Flow  →  tema SCURO, dominante ANTRACITE (secondario)
                               con accento ORO
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;600;700&family=DM+Serif+Display&family=DM+Mono:wght@400&display=swap');

:root {
    /* Colori primitivi */
    --color-gold: #F5A800;
    --color-anthracite: #1A1A1A;
    --color-ivory: #F7F6F0;
    --color-gray-dark: #444441;
    --color-gray-mid: #888880;
    --color-gray-light: #C8C8C0;
    --color-gray-soft: #F0EFE8;

    /* Token semantici — tema DARK */
    --bg-page: var(--color-anthracite);
    --bg-surface: #2c2c2a;
    --bg-surface-alt: #383836;
    --text-primary: var(--color-ivory);
    --text-secondary: var(--color-gray-light);
    --text-muted: var(--color-gray-mid);
    --border: var(--color-gray-dark);
    --accent: var(--color-gold);

    /* Tipografia */
    --font-serif: 'DM Serif Display', Georgia, serif;
    --font-sans: 'Barlow', system-ui, -apple-system, sans-serif;
    --font-mono: 'DM Mono', 'Cascadia Code', Consolas, monospace;
}

/* ---------- Base ---------- */
body {
    background: var(--bg-page);
    margin: 0;
}

.swagger-ui {
    background: var(--bg-page);
    color: var(--text-primary);
}

/* Testo di default chiaro su quasi tutti gli elementi testuali */
.swagger-ui,
.swagger-ui .info li,
.swagger-ui .info p,
.swagger-ui .info a,
.swagger-ui .info table,
.swagger-ui .opblock-description-wrapper p,
.swagger-ui .opblock-external-docs-wrapper p,
.swagger-ui .parameter__name,
.swagger-ui .parameter__type,
.swagger-ui .parameter__in,
.swagger-ui label,
.swagger-ui .tab li,
.swagger-ui .opblock-tag,
.swagger-ui table thead tr th,
.swagger-ui table thead tr td,
.swagger-ui .col_header,
.swagger-ui .response-col_status,
.swagger-ui .response-col_links,
.swagger-ui .response-col_description,
.swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5,
.swagger-ui .opblock-title_normal,
.swagger-ui .opblock .opblock-section-header h4,
.swagger-ui .opblock .opblock-section-header > label,
.swagger-ui .opblock .opblock-section-header label span,
.swagger-ui .tab li button.tablinks,
.swagger-ui .model-title,
.swagger-ui .model,
.swagger-ui .servers-title,
.swagger-ui .servers > label {
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* Input / select scuri */
.swagger-ui select,
.swagger-ui input[type=text],
.swagger-ui input[type=email],
.swagger-ui input[type=password],
.swagger-ui textarea {
    font-family: var(--font-sans);
    background: var(--bg-surface);
    color: var(--text-primary);
    border: 1px solid var(--border);
}

/* Codici, misure, dati tecnici */
.swagger-ui .microlight,
.swagger-ui code,
.swagger-ui textarea.curl,
.swagger-ui .prop-type,
.swagger-ui .response-col_status {
    font-family: var(--font-mono);
}

/* ---------- Topbar + logo ---------- */
.swagger-ui .topbar {
    background-color: #000000;
    border-bottom: 3px solid var(--accent);
}

.swagger-ui .topbar .topbar-wrapper .link {
    display: inline-flex;
    align-items: center;
    width: 200px;
    height: 60px;
    overflow: hidden;
    background: url("rows-logo-light.svg") no-repeat left center;
    background-size: contain;
}

.swagger-ui .topbar .topbar-wrapper .link > * {
    display: none !important;
}

.swagger-ui .topbar .download-url-wrapper .download-url-button {
    background: var(--accent);
    color: var(--color-anthracite);
    font-weight: 600;
}

.swagger-ui .topbar .download-url-wrapper input[type=text] {
    border-color: var(--accent);
}

/* ---------- Info / intestazione ---------- */
.swagger-ui .info .title {
    font-family: var(--font-serif);
    font-weight: 400;
    color: var(--text-primary);
}

.swagger-ui .info .title small {
    background: var(--color-gray-dark);
}

.swagger-ui .info .title small.version-stamp {
    background-color: var(--accent);
}

.swagger-ui .info p,
.swagger-ui .info li {
    color: var(--text-secondary);
}

/* ---------- Sezioni (tag) ---------- */
.swagger-ui .opblock-tag {
    font-weight: 700;
    letter-spacing: -0.5px;
    border-bottom: 1px solid var(--border);
}

.swagger-ui .opblock-tag small {
    color: var(--text-muted);
}

/* ---------- Operation block ---------- */
.swagger-ui .opblock {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    box-shadow: none;
    border-radius: 6px;
    margin: 0 0 14px;
}

.swagger-ui .opblock .opblock-summary {
    border-color: var(--border);
}

.swagger-ui .opblock .opblock-summary-method {
    font-family: var(--font-sans);
    font-weight: 700;
    border-radius: 4px;
}

.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-path__deprecated,
.swagger-ui .opblock .opblock-summary-description {
    color: var(--text-primary);
    font-family: var(--font-mono);
}

.swagger-ui .opblock.opblock-get,
.swagger-ui .opblock.opblock-post,
.swagger-ui .opblock.opblock-put,
.swagger-ui .opblock.opblock-delete {
    background: var(--bg-surface);
    border-color: var(--border);
}

/* Header di sezione "Parameters" / "Responses" (alta specificità con .opblock) */
.swagger-ui .opblock .opblock-section-header {
    background: var(--bg-surface-alt);
    box-shadow: none;
    border-bottom: 1px solid var(--border);
}

.swagger-ui .opblock .opblock-section-header h4,
.swagger-ui .opblock .opblock-section-header > label,
.swagger-ui .opblock .opblock-section-header label span {
    color: var(--text-primary);
}

/* ---------- Bottoni ---------- */
.swagger-ui .btn {
    border-radius: 4px;
    box-shadow: none;
    color: var(--text-primary);
    border-color: var(--border);
}

.swagger-ui .btn.try-out__btn {
    color: var(--text-primary);
    border-color: var(--border);
}

.swagger-ui .btn.authorize {
    color: var(--accent);
    border-color: var(--accent);
}

.swagger-ui .btn.authorize svg { fill: var(--accent); }

.swagger-ui .btn.execute {
    background-color: var(--accent);
    border-color: var(--accent);
    color: var(--color-anthracite);
    font-weight: 600;
}

.swagger-ui .btn.execute:hover {
    background-color: #d99700;
    border-color: #d99700;
}

/* ---------- Tabelle / parametri / risposte ---------- */
.swagger-ui .scheme-container {
    background: var(--bg-surface);
    box-shadow: none;
    border-bottom: 1px solid var(--border);
}

.swagger-ui table tbody tr td {
    border-color: var(--border);
    color: var(--text-primary);
}

.swagger-ui table thead tr td,
.swagger-ui table thead tr th {
    border-color: var(--border);
}

.swagger-ui .parameters-col_description,
.swagger-ui .response-col_description {
    color: var(--text-secondary);
}

/* ---------- Blocchi di codice / esempi ---------- */
.swagger-ui .highlight-code,
.swagger-ui .microlight {
    background: #14140f;
}

/* ---------- Models / Schemas ---------- */
.swagger-ui section.models {
    border: 1px solid var(--border);
    background: var(--bg-surface);
}

.swagger-ui section.models .model-container {
    background: var(--bg-surface-alt);
}

.swagger-ui section.models h4,
.swagger-ui .models-control {
    color: var(--text-primary);
}

/* Rimuove lo sfondo chiaro che Swagger applica al riquadro del titolo modello */
.swagger-ui .model-box,
.swagger-ui .model-box-control,
.swagger-ui .model-title,
.swagger-ui .model-title__text {
    background: transparent !important;
}

.swagger-ui section.models .model-container {
    background: var(--bg-surface-alt) !important;
}

/* ---------- Schemas: renderer JSON Schema 2020-12 (OAS 3.1) ---------- */
/* I button non hanno sfondo impostato → prendono il grigio di default del browser */
.swagger-ui .json-schema-2020-12,
.swagger-ui .json-schema-2020-12-accordion,
.swagger-ui .json-schema-2020-12-expand-deep-button {
    background: transparent;
}

.swagger-ui .json-schema-2020-12-accordion,
.swagger-ui .json-schema-2020-12-expand-deep-button,
.swagger-ui .json-schema-2020-12__title {
    color: var(--text-primary);
}

.swagger-ui .json-schema-2020-12-property .json-schema-2020-12__title,
.swagger-ui .json-schema-2020-12-keyword__name,
.swagger-ui .json-schema-2020-12-keyword__name--primary,
.swagger-ui .json-schema-2020-12-json-viewer__name--primary,
.swagger-ui .json-schema-2020-12__attribute {
    color: var(--text-secondary);
}

.swagger-ui .json-schema-2020-12-keyword__value,
.swagger-ui .json-schema-2020-12-keyword--description,
.swagger-ui .json-schema-2020-12-json-viewer__value {
    color: var(--text-muted);
}

.swagger-ui .json-schema-2020-12-accordion__icon svg {
    fill: var(--text-secondary);
}

.swagger-ui .model,
.swagger-ui .model-title,
.swagger-ui .prop-name,
.swagger-ui .property.primitive,
.swagger-ui .model .property {
    color: var(--text-primary);
}

.swagger-ui .model .property.primitive {
    color: var(--text-secondary);
}

/* Freccia toggle (icona scura → chiara) */
.swagger-ui .model-toggle:after {
    filter: invert(1);
}

.swagger-ui .expand-operation svg,
.swagger-ui .opblock-summary-control svg {
    fill: var(--text-secondary);
}

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

/* ---------- Link / focus ---------- */
.swagger-ui .info a,
.swagger-ui a.nostyle {
    color: var(--accent);
}

.swagger-ui *:focus {
    outline-color: var(--accent);
}

/* Selezione testo coerente col tema */
.swagger-ui ::selection {
    background: var(--accent);
    color: var(--color-anthracite);
}
