/* TeZa tema za Swagger UI (/docs). Oslanja se na promenljive iz style.css; vendor CSS je
   app/static/vendor/swagger-ui/swagger-ui.css. Selektori idu preko #swagger-ui da nadjačaju
   vendor pravila bez !important. Tamna tema koristi i ugrađeni html.dark-mode režim Swagger UI-a
   (docs.js ga uključuje), a ovde se boje svode na našu paletu. */

.docs-page .intro { padding: 18px 0 8px; }
.docs-page .intro > p:not(.eyebrow) { font-size: 14px; }
.docs-page .intro code { color: var(--primary-ink); background: var(--primary-soft); border-radius: var(--radius-xs); padding: 1px 6px; font-size: 12.5px; }
.docs-page .intro b { font-family: var(--font-display); font-weight: 600; color: var(--ink); }
#swagger-ui { min-height: 320px; }
#swagger-ui[aria-busy=true]::before { content: "Učitavanje dokumentacije…"; display: block; color: var(--muted); font-family: var(--font-mono); font-size: 12px; padding: 24px 0; }

/* ---------- osnova */
#swagger-ui .swagger-ui { color: var(--ink); font-family: var(--font-body); }
#swagger-ui .swagger-ui .wrapper { max-width: none; padding: 0; }
#swagger-ui .swagger-ui a { color: var(--cyan); }
#swagger-ui .swagger-ui a:hover { color: var(--ink); }
#swagger-ui .swagger-ui a.nostyle, #swagger-ui .swagger-ui a.nostyle:visited, #swagger-ui .swagger-ui a.nostyle:hover { color: inherit; }
#swagger-ui .swagger-ui p, #swagger-ui .swagger-ui li, #swagger-ui .swagger-ui td, #swagger-ui .swagger-ui th,
#swagger-ui .swagger-ui label, #swagger-ui .swagger-ui .renderedMarkdown p { color: var(--ink-2); font-family: var(--font-body); }
#swagger-ui .swagger-ui h1, #swagger-ui .swagger-ui h2, #swagger-ui .swagger-ui h3, #swagger-ui .swagger-ui h4, #swagger-ui .swagger-ui h5,
#swagger-ui .swagger-ui .opblock-tag, #swagger-ui .swagger-ui .opblock-title, #swagger-ui .swagger-ui .opblock-section-header h4,
#swagger-ui .swagger-ui .responses-inner h4, #swagger-ui .swagger-ui .responses-inner h5, #swagger-ui .swagger-ui .model-title,
#swagger-ui .swagger-ui .models h4, #swagger-ui .swagger-ui .scheme-container .schemes-title, #swagger-ui .swagger-ui .servers-title,
#swagger-ui .swagger-ui .parameters-col_description .parameter__name, #swagger-ui .swagger-ui .opblock-description-wrapper h4 { color: var(--ink); }
#swagger-ui .swagger-ui code, #swagger-ui .swagger-ui pre, #swagger-ui .swagger-ui .microlight, #swagger-ui .swagger-ui .opblock-summary-path,
#swagger-ui .swagger-ui .parameter__type, #swagger-ui .swagger-ui .prop-type, #swagger-ui .swagger-ui .prop-format, #swagger-ui .swagger-ui .model,
#swagger-ui .swagger-ui .response-col_status, #swagger-ui .swagger-ui .info .base-url, #swagger-ui .swagger-ui .opblock-summary-operation-id { font-family: var(--font-mono); }
#swagger-ui .swagger-ui .renderedMarkdown code, #swagger-ui .swagger-ui .markdown code { color: var(--primary-ink); background: var(--primary-soft); border-radius: var(--radius-xs); padding: 1px 5px; }
#swagger-ui .swagger-ui svg.arrow, #swagger-ui .swagger-ui .expand-operation svg, #swagger-ui .swagger-ui .expand-methods svg,
#swagger-ui .swagger-ui .authorization__btn svg, #swagger-ui .swagger-ui .model-toggle::after { fill: var(--ink-2); filter: none; }
#swagger-ui .swagger-ui .model-toggle::after { background: none; content: "\25BE"; color: var(--ink-2); font-size: 14px; line-height: 20px; text-align: center; transform: none; }
#swagger-ui .swagger-ui .model-toggle.collapsed::after { content: "\25B8"; }
#swagger-ui .swagger-ui :focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }

/* ---------- zaglavlje specifikacije */
#swagger-ui .swagger-ui .information-container { background: transparent; }
#swagger-ui .swagger-ui .info { margin: 20px 0 10px; }
#swagger-ui .swagger-ui .info .title { font-family: var(--font-display); font-weight: 700; letter-spacing: -.4px; color: var(--ink); }
#swagger-ui .swagger-ui .info .title small { background: var(--surface-3); border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 2px 10px; vertical-align: middle; }
#swagger-ui .swagger-ui .info .title small pre { color: var(--ink-2); font-family: var(--font-mono); font-size: 11px; }
#swagger-ui .swagger-ui .info .title small.version-stamp { background: var(--ok-soft); border-color: transparent; }
#swagger-ui .swagger-ui .info .title small.version-stamp pre { color: var(--ok); }
#swagger-ui .swagger-ui .info .base-url, #swagger-ui .swagger-ui .info .description p { color: var(--ink-2); }
#swagger-ui .swagger-ui .info hgroup.main a { color: var(--cyan); font-family: var(--font-mono); font-size: 12px; }

/* ---------- šeme, serveri, autorizacija */
#swagger-ui .swagger-ui .scheme-container { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 18px 22px; margin: 0 0 26px; position: relative; overflow: hidden; }
#swagger-ui .swagger-ui .scheme-container .schemes { align-items: center; }
#swagger-ui .swagger-ui .auth-wrapper .authorize { margin-right: 0; }

/* ---------- dugmad */
#swagger-ui .swagger-ui .btn { font-family: var(--font-display); font-weight: 600; font-size: 13px; letter-spacing: .2px; border: 1px solid var(--border-strong); border-radius: var(--radius); color: var(--ink); background: var(--surface-2); box-shadow: none; transition: border-color .15s, background .15s, color .15s; }
#swagger-ui .swagger-ui .btn:hover { border-color: var(--ink-2); box-shadow: none; }
#swagger-ui .swagger-ui .btn svg { fill: currentColor; }
#swagger-ui .swagger-ui .btn.authorize { color: var(--ok); border-color: var(--ok); background: var(--ok-soft); }
#swagger-ui .swagger-ui .btn.authorize span { padding: 4px 12px 0 0; }
#swagger-ui .swagger-ui .btn.authorize svg { fill: var(--ok); }
#swagger-ui .swagger-ui .btn.execute { background: var(--primary); border-color: transparent; color: #fff; }
#swagger-ui .swagger-ui .btn.execute:hover { background: var(--primary-hover); }
#swagger-ui .swagger-ui .btn.cancel, #swagger-ui .swagger-ui .btn.btn-clear { color: var(--error); border-color: var(--error); background: var(--error-soft); }
#swagger-ui .swagger-ui .btn.try-out__btn { color: var(--cyan); border-color: var(--cyan); background: var(--cyan-soft); }
#swagger-ui .swagger-ui .btn.try-out__btn.cancel { color: var(--error); border-color: var(--error); background: var(--error-soft); }
#swagger-ui .swagger-ui .btn-group .btn:first-child, #swagger-ui .swagger-ui .btn-group .btn:last-child { border-radius: var(--radius); }
#swagger-ui .swagger-ui .btn-group { gap: 10px; }
#swagger-ui .swagger-ui .btn-group .btn { flex: 1; }
#swagger-ui .swagger-ui .copy-to-clipboard { background: var(--surface-3); border: 1px solid var(--border); border-radius: var(--radius-sm); }
#swagger-ui .swagger-ui .copy-to-clipboard button { background-color: var(--ink-2); -webkit-mask: var(--copy-mask, none); }
#swagger-ui .swagger-ui .download-contents { background: var(--surface-3); color: var(--ink); border: 1px solid var(--border); border-radius: var(--radius-sm); font-family: var(--font-display); }

/* ---------- grupe operacija */
#swagger-ui .swagger-ui .opblock-tag-section { margin-bottom: 8px; }
#swagger-ui .swagger-ui .opblock-tag { font-family: var(--font-display); font-size: 20px; font-weight: 700; letter-spacing: -.2px; border-bottom: 1px solid var(--border); padding: 12px 6px; transition: background .15s; }
#swagger-ui .swagger-ui .opblock-tag:hover { background: var(--surface); border-radius: var(--radius) var(--radius) 0 0; }
#swagger-ui .swagger-ui .opblock-tag small { color: var(--muted); font-family: var(--font-body); font-size: 13px; font-weight: 400; }

/* ---------- operacije */
#swagger-ui .swagger-ui .opblock { --method: var(--cyan); --method-soft: var(--cyan-soft); background: var(--surface); border: 1px solid var(--border); border-left: 3px solid var(--method); border-radius: var(--radius); box-shadow: var(--shadow-sm); margin: 0 0 12px; overflow: hidden; }
#swagger-ui .swagger-ui .opblock.is-open { border-color: var(--border-strong); border-left-color: var(--method); }
#swagger-ui .swagger-ui .opblock.opblock-get { --method: var(--cyan); --method-soft: var(--cyan-soft); }
#swagger-ui .swagger-ui .opblock.opblock-post { --method: var(--primary); --method-soft: var(--primary-soft); }
#swagger-ui .swagger-ui .opblock.opblock-put { --method: var(--warn); --method-soft: var(--warn-soft); }
#swagger-ui .swagger-ui .opblock.opblock-patch { --method: var(--ok); --method-soft: var(--ok-soft); }
#swagger-ui .swagger-ui .opblock.opblock-delete { --method: var(--error); --method-soft: var(--error-soft); }
#swagger-ui .swagger-ui .opblock.opblock-head, #swagger-ui .swagger-ui .opblock.opblock-options { --method: var(--info); --method-soft: rgba(77, 134, 255, .14); }
#swagger-ui .swagger-ui .opblock.opblock-deprecated { --method: var(--muted); --method-soft: var(--surface-3); opacity: .7; }
#swagger-ui .swagger-ui .opblock .opblock-summary { border: 0; padding: 8px 12px; gap: 12px; }
#swagger-ui .swagger-ui .opblock .opblock-summary:hover { background: var(--method-soft); }
#swagger-ui .swagger-ui .opblock .opblock-summary-method { background: var(--method); color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 12px; letter-spacing: .4px; border-radius: var(--radius-sm); min-width: 76px; padding: 7px 0; text-shadow: none; }
#swagger-ui .swagger-ui .opblock.opblock-post .opblock-summary-method { background: var(--primary); }
#swagger-ui .swagger-ui .opblock.opblock-put .opblock-summary-method, #swagger-ui .swagger-ui .opblock.opblock-patch .opblock-summary-method { color: #08090d; }
#swagger-ui .swagger-ui .opblock .opblock-summary-path, #swagger-ui .swagger-ui .opblock .opblock-summary-path__deprecated { color: var(--ink); font-size: 15px; font-weight: 500; }
#swagger-ui .swagger-ui .opblock .opblock-summary-path a { color: inherit; }
#swagger-ui .swagger-ui .opblock .opblock-summary-description { color: var(--muted); font-family: var(--font-body); font-size: 13px; }
#swagger-ui .swagger-ui .opblock .opblock-summary-control:focus { outline: none; }
#swagger-ui .swagger-ui .opblock .opblock-section-header { background: var(--surface-2); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); box-shadow: none; padding: 8px 16px; }
#swagger-ui .swagger-ui .opblock .opblock-section-header h4, #swagger-ui .swagger-ui .opblock .opblock-section-header label { color: var(--ink); font-family: var(--font-display); font-weight: 600; }
#swagger-ui .swagger-ui .opblock .opblock-section-header label span { color: var(--muted); padding-right: 8px; }
#swagger-ui .swagger-ui .opblock .opblock-body { background: var(--surface); }
#swagger-ui .swagger-ui .opblock-body pre.microlight, #swagger-ui .swagger-ui .highlight-code > .microlight, #swagger-ui .swagger-ui .curl-command .microlight,
#swagger-ui .swagger-ui .responses-inner pre, #swagger-ui .swagger-ui .model-example pre { background: #0c0e13; color: #dfe3ee; border: 1px solid var(--border); border-radius: var(--radius); font-family: var(--font-mono); font-size: 12.5px; }
#swagger-ui .swagger-ui .opblock-description-wrapper p, #swagger-ui .swagger-ui .opblock-external-docs-wrapper p, #swagger-ui .swagger-ui .opblock-title_normal p { color: var(--ink-2); font-size: 13.5px; }
#swagger-ui .swagger-ui .opblock .opblock-section-header > label > span, #swagger-ui .swagger-ui .opblock-description-wrapper h4 { font-family: var(--font-body); }

/* ---------- tabele parametara i odgovora */
#swagger-ui .swagger-ui table thead tr td, #swagger-ui .swagger-ui table thead tr th { color: var(--muted); font-family: var(--font-mono); font-size: 11px; letter-spacing: .6px; text-transform: uppercase; border-bottom: 1px solid var(--border); }
#swagger-ui .swagger-ui table tbody tr td { border: 0; padding-block: 12px; }
#swagger-ui .swagger-ui .parameters-col_description { width: auto; }
#swagger-ui .swagger-ui .parameter__name { color: var(--ink); font-weight: 600; font-family: var(--font-body); }
#swagger-ui .swagger-ui .parameter__name.required::after { color: var(--error); }
#swagger-ui .swagger-ui .parameter__name.required span { color: var(--error); }
#swagger-ui .swagger-ui .parameter__type { color: var(--cyan); font-size: 12px; }
#swagger-ui .swagger-ui .parameter__in, #swagger-ui .swagger-ui .parameter__deprecated { color: var(--muted); font-family: var(--font-mono); font-style: normal; font-size: 11px; }
#swagger-ui .swagger-ui .parameter__extension { color: var(--muted); }
#swagger-ui .swagger-ui .response-col_status { color: var(--ink); font-weight: 600; }
#swagger-ui .swagger-ui .response-col_description, #swagger-ui .swagger-ui .response-col_links { color: var(--ink-2); }
#swagger-ui .swagger-ui .response-col_description__inner div.markdown, #swagger-ui .swagger-ui .response-col_description__inner div.renderedMarkdown { background: var(--surface-2); color: var(--ink); border-radius: var(--radius-sm); }
#swagger-ui .swagger-ui .response-control-media-type__accept-message { color: var(--ok); }
#swagger-ui .swagger-ui .response-control-media-type--accept-controller select { border-color: var(--ok); }
#swagger-ui .swagger-ui .responses-inner .responses-table .response .response-col_status .response-undocumented { color: var(--muted); }
#swagger-ui .swagger-ui .live-responses-table .response-col_status { color: var(--ok); }
#swagger-ui .swagger-ui .tab li { color: var(--ink-2); font-family: var(--font-display); font-size: 12px; }
#swagger-ui .swagger-ui .tab li.active, #swagger-ui .swagger-ui .tab li.active button { color: var(--ink); }
#swagger-ui .swagger-ui .tab li button.tablinks { color: inherit; }
#swagger-ui .swagger-ui .tab li:first-of-type::after { background: var(--border-strong); }
#swagger-ui .swagger-ui .opblock-body .opblock-loading-animation { filter: hue-rotate(260deg); }

/* ---------- polja za unos */
#swagger-ui .swagger-ui input[type=email], #swagger-ui .swagger-ui input[type=file], #swagger-ui .swagger-ui input[type=password],
#swagger-ui .swagger-ui input[type=search], #swagger-ui .swagger-ui input[type=text], #swagger-ui .swagger-ui textarea, #swagger-ui .swagger-ui select {
  background: var(--surface-2); color: var(--ink); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); box-shadow: none; font-family: var(--font-mono); font-size: 13px; }
#swagger-ui .swagger-ui input[type=text]:focus, #swagger-ui .swagger-ui textarea:focus, #swagger-ui .swagger-ui select:focus { border-color: var(--cyan); outline: none; }
#swagger-ui .swagger-ui input.invalid, #swagger-ui .swagger-ui textarea.invalid, #swagger-ui .swagger-ui select.invalid { background: var(--error-soft); border-color: var(--error); animation: none; }
#swagger-ui .swagger-ui select { appearance: none; padding: 5px 34px 5px 10px; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='%237f8494'%3E%3Cpath d='M13.4 7.4L10 10.8 6.6 7.4 5.2 8.8 10 13.6l4.8-4.8z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 8px center; background-size: 18px; }
#swagger-ui .swagger-ui textarea { min-height: 150px; }
#swagger-ui .swagger-ui .body-param__text { background: var(--surface-2); }
#swagger-ui .swagger-ui .body-param-options { color: var(--ink-2); }
#swagger-ui .swagger-ui .body-param__example-edit { color: var(--muted); }
#swagger-ui .swagger-ui .parameter__empty_value_toggle { color: var(--muted); }
#swagger-ui .swagger-ui .json-schema-form-item input { background: var(--surface-2); }
#swagger-ui .swagger-ui .json-schema-form-item-add, #swagger-ui .swagger-ui .json-schema-form-item-remove { background: var(--surface-3); color: var(--ink); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); }
#swagger-ui .swagger-ui .filter .operation-filter-input { background: var(--surface); border: 1px solid var(--border-strong); color: var(--ink); border-radius: var(--radius); }

/* ---------- modeli / šeme */
#swagger-ui .swagger-ui section.models { border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); margin: 28px 0 6px; }
#swagger-ui .swagger-ui section.models.is-open { padding: 0 0 12px; }
#swagger-ui .swagger-ui section.models.is-open h4 { border-bottom: 1px solid var(--border); margin: 0 0 8px; }
#swagger-ui .swagger-ui section.models h4 { font-family: var(--font-display); font-size: 18px; color: var(--ink); padding: 14px 20px; }
#swagger-ui .swagger-ui section.models h4:hover { background: var(--surface-2); }
#swagger-ui .swagger-ui section.models h4 span { color: var(--ink); }
#swagger-ui .swagger-ui section.models .model-container { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius); margin: 0 16px 10px; }
#swagger-ui .swagger-ui section.models .model-container:hover { background: var(--surface-3); }
#swagger-ui .swagger-ui .model-box { background: var(--surface-2); border-radius: var(--radius); }
#swagger-ui .swagger-ui .model-box .model-box { background: var(--surface-3); }
#swagger-ui .swagger-ui .model, #swagger-ui .swagger-ui .model .property, #swagger-ui .swagger-ui .model .property.primitive, #swagger-ui .swagger-ui .model-title { color: var(--ink-2); }
#swagger-ui .swagger-ui .model-title { font-family: var(--font-display); font-size: 15px; color: var(--ink); }
#swagger-ui .swagger-ui .model .prop-type { color: var(--cyan); }
#swagger-ui .swagger-ui .model .prop-format { color: var(--muted); }
#swagger-ui .swagger-ui .model .renderedMarkdown p { color: var(--ink-2); }
#swagger-ui .swagger-ui .model .brace-open, #swagger-ui .swagger-ui .model .brace-close, #swagger-ui .swagger-ui .model .inner-object .brace-open { color: var(--ink-2); }
#swagger-ui .swagger-ui .model .model-jump-to-path svg, #swagger-ui .swagger-ui .model .model-hint { color: var(--ink); background: var(--surface-3); }
#swagger-ui .swagger-ui .model .property-row .star, #swagger-ui .swagger-ui .model .required { color: var(--error); }
#swagger-ui .swagger-ui .model-box-control:focus, #swagger-ui .swagger-ui .models-control:focus, #swagger-ui .swagger-ui .opblock-summary-control:focus { outline: none; }
#swagger-ui .swagger-ui .model-box-control, #swagger-ui .swagger-ui .models-control { color: inherit; }
#swagger-ui .swagger-ui .model .deprecated span, #swagger-ui .swagger-ui .model .deprecated td { color: var(--muted); }

/* ---------- autorizacioni dijalog */
#swagger-ui .swagger-ui .dialog-ux .backdrop-ux { background: rgba(8, 9, 13, .78); backdrop-filter: blur(3px); }
#swagger-ui .swagger-ui .dialog-ux .modal-ux { background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); overflow: hidden; }
#swagger-ui .swagger-ui .dialog-ux .modal-ux-header { border-bottom: 1px solid var(--border); }
#swagger-ui .swagger-ui .dialog-ux .modal-ux-header h3 { color: var(--ink); font-family: var(--font-display); }
#swagger-ui .swagger-ui .dialog-ux .modal-ux-header .close-modal svg { fill: var(--ink-2); }
#swagger-ui .swagger-ui .dialog-ux .modal-ux-content h4, #swagger-ui .swagger-ui .dialog-ux .modal-ux-content h4 code { color: var(--ink); }
#swagger-ui .swagger-ui .dialog-ux .modal-ux-content p, #swagger-ui .swagger-ui .dialog-ux .modal-ux-content label { color: var(--ink-2); }
#swagger-ui .swagger-ui .dialog-ux .modal-ux-content code { color: var(--primary-ink); background: var(--primary-soft); border-radius: var(--radius-xs); padding: 1px 5px; }
#swagger-ui .swagger-ui .auth-container { border-bottom: 1px solid var(--border); }
#swagger-ui .swagger-ui .auth-container .errors { background: var(--error-soft); color: var(--error); border-radius: var(--radius-sm); }
#swagger-ui .swagger-ui .auth-btn-wrapper { justify-content: flex-start; gap: 10px; }
#swagger-ui .swagger-ui .auth-btn-wrapper .btn { margin: 0; }
#swagger-ui .swagger-ui .auth-btn-wrapper .btn.authorize { color: #fff; background: var(--primary); border-color: transparent; }

/* ---------- greške i učitavanje */
#swagger-ui .swagger-ui .errors-wrapper { background: var(--error-soft); border: 1px solid var(--error); border-radius: var(--radius); }
#swagger-ui .swagger-ui .errors-wrapper hgroup h4, #swagger-ui .swagger-ui .errors-wrapper .errors h4, #swagger-ui .swagger-ui .errors-wrapper .errors small { color: var(--ink); }
#swagger-ui .swagger-ui .errors-wrapper .errors .message { color: var(--error); }
#swagger-ui .swagger-ui .loading-container .loading::before { border-color: var(--surface-3); }
#swagger-ui .swagger-ui .loading-container .loading::after { color: var(--muted); font-family: var(--font-mono); }
#swagger-ui .swagger-ui .response .response-col_description .markdown p, #swagger-ui .swagger-ui .responses-inner .response-col_description__inner p { color: var(--ink-2); }

/* ---------- ugrađeni dark-mode Swagger UI-a: poravnanje ostataka na našu paletu */
html.dark-mode #swagger-ui .swagger-ui .opblock.opblock-get, html.dark-mode #swagger-ui .swagger-ui .opblock.opblock-post,
html.dark-mode #swagger-ui .swagger-ui .opblock.opblock-put, html.dark-mode #swagger-ui .swagger-ui .opblock.opblock-delete,
html.dark-mode #swagger-ui .swagger-ui .opblock.opblock-patch { background: var(--surface); border-color: var(--border); border-left-color: var(--method); }
html.dark-mode #swagger-ui .swagger-ui .opblock .opblock-section-header { background: var(--surface-2); }
html.dark-mode #swagger-ui .swagger-ui .highlight-code .microlight, html.dark-mode #swagger-ui .swagger-ui .microlight { background: #0c0e13; }

@media (max-width: 720px) {
  #swagger-ui .swagger-ui .opblock .opblock-summary { flex-wrap: wrap; }
  #swagger-ui .swagger-ui .opblock .opblock-summary-description { flex-basis: 100%; padding-left: 0; }
  #swagger-ui .swagger-ui .scheme-container { padding: 14px 16px; }
  #swagger-ui .swagger-ui .scheme-container .schemes { flex-wrap: wrap; gap: 10px; }
}
