/* Hawt Cloud theme for Swagger UI.
 *
 * Loaded *after* swagger-ui.css, which is a light theme with hard-coded
 * colors and no custom properties of its own, so everything here is an
 * override of a surface that stylesheet already paints. Palette, type and
 * spacing follow landing.html.
 */

:root {
  color-scheme: dark;
  --bg: #0b0d14;
  --panel: #12151f;
  --raised: #161a26;
  --border: #232838;
  --border-soft: #1b1f2c;
  --fg: #f3f4f6;
  --muted: #9ca3af;
  --dim: #6b7280;
  --accent: #f47d20;
  --accent-soft: rgba(244, 125, 32, 0.12);
  --get: #60a5fa;
  --post: #4ade80;
  --delete: #f87171;
  --put: #fbbf24;
  --patch: #2dd4bf;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  --radius: 10px;
}

html { background: var(--bg); }
body { background: var(--bg); margin: 0; }

/* Swagger's own topbar is the petstore URL explorer; the masthead replaces it. */
.swagger-ui .topbar,
.swagger-ui .info hgroup.main,
.swagger-ui .info .title small,
.swagger-ui .loading-container .loading:before { display: none; }

/* ---------------------------------------------------------------- masthead */

.hawt-masthead {
  border-bottom: 1px solid var(--border);
  /* Hawty is red-orange; the glow reads as a sunrise behind the brand. */
  background:
    radial-gradient(60rem 14rem at 12% -6rem, rgba(244, 125, 32, 0.16), transparent 70%),
    var(--panel);
}
.hawt-masthead__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 1.35rem 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  font-family: var(--sans);
}
.hawt-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.95rem;
  text-decoration: none;
}
.hawt-brand img {
  width: 60px;
  height: 60px;
  flex-shrink: 0;
  filter: drop-shadow(0 8px 18px rgba(237, 28, 36, 0.3));
}
.hawt-brand__text { display: flex; flex-direction: column; gap: 0.15rem; }
.hawt-brand__name {
  font-size: 1.6rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.1;
  background: linear-gradient(90deg, #fff, var(--accent));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hawt-brand__sub { font-size: 0.85rem; color: var(--muted); }
.hawt-brand__sub code {
  font-family: var(--mono);
  font-size: 0.8rem;
  color: var(--fg);
}

.hawt-nav {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.hawt-nav a {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.9rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  color: var(--muted);
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 600;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.hawt-nav a:hover,
.hawt-nav a:focus-visible { color: var(--accent); border-color: var(--accent); }
.hawt-version {
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent);
  font-family: var(--mono);
  font-size: 0.75rem;
  font-weight: 600;
  margin-right: 0.35rem;
}

/* ------------------------------------------------------------ base surface */

.swagger-ui { font-family: var(--sans); color: var(--fg); }
.swagger-ui .wrapper { max-width: 1400px; padding: 0 20px; }
.swagger-ui section.models h4,
.swagger-ui .opblock-tag,
.swagger-ui .info .title,
.swagger-ui h1, .swagger-ui h2, .swagger-ui h3,
.swagger-ui h4, .swagger-ui h5, .swagger-ui h6 {
  font-family: var(--sans);
  color: var(--fg);
}
.swagger-ui p,
.swagger-ui li,
.swagger-ui label,
.swagger-ui table thead tr td,
.swagger-ui table thead tr th,
.swagger-ui .response-col_status,
.swagger-ui .response-col_links,
.swagger-ui .parameter__name,
.swagger-ui .prop-name,
.swagger-ui .tab li,
.swagger-ui .opblock-description-wrapper p,
.swagger-ui .opblock-title_normal p { color: var(--fg); }
.swagger-ui .parameter__type,
.swagger-ui .parameter__in,
.swagger-ui .parameter__extension,
.swagger-ui .prop-format,
.swagger-ui .response-col_description__inner p,
.swagger-ui .opblock-tag small { color: var(--muted); }

.swagger-ui a,
.swagger-ui a.nostyle,
.swagger-ui .info a { color: var(--accent); }
.swagger-ui .info a:hover { color: #ff9c4d; }

/* Inline `code` inside rendered markdown is pink-on-pink by default. */
.swagger-ui .renderedMarkdown code,
.swagger-ui .response-col_description__inner code,
.swagger-ui code {
  font-family: var(--mono);
  background: rgba(255, 255, 255, 0.06);
  color: var(--accent);
  border-radius: 4px;
  padding: 0.1em 0.4em;
}

/* ----------------------------------------------- description / info panel */

.swagger-ui .information-container { padding: 2rem 0 0; }
.swagger-ui .information-container .info {
  margin: 0;
  padding: 1.5rem 1.75rem;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
.swagger-ui .info .description h1,
.swagger-ui .info .description h2 {
  font-size: 1.15rem;
  font-weight: 700;
  margin: 1.5rem 0 0.5rem;
}
/* Section labels ("Authentication", "Core Policies") echo the landing page's
   small-caps rules rather than shouting as headings. */
.swagger-ui .info .description h3,
.swagger-ui .info .description h4 {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--dim);
  margin: 1.75rem 0 0.5rem;
}
.swagger-ui .info .description > p:first-child {
  font-size: 1.05rem;
  color: var(--muted);
}
.swagger-ui .info .description p,
.swagger-ui .info .description li,
.swagger-ui .renderedMarkdown p,
.swagger-ui .renderedMarkdown li { color: #d5d8de; }
.swagger-ui .info .description ul { padding-left: 1.1rem; }
.swagger-ui .info .description li { margin: 0.3rem 0; }
.swagger-ui .info .description strong { color: var(--fg); }

/* Endpoint descriptions come through the same markdown renderer, but under
   selectors specific enough to beat the blanket heading rule above. */
.swagger-ui .renderedMarkdown h1,
.swagger-ui .renderedMarkdown h2,
.swagger-ui .renderedMarkdown h3,
.swagger-ui .renderedMarkdown h4,
.swagger-ui .renderedMarkdown h5 {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--dim);
  margin: 1.25rem 0 0.4rem;
}
.swagger-ui .renderedMarkdown strong { color: var(--fg); font-weight: 600; }
.swagger-ui .renderedMarkdown ul { padding-left: 1.1rem; }
.swagger-ui .opblock-description-wrapper { padding: 1.25rem; }

/* -------------------------------------------------------- servers / authorize */

.swagger-ui .scheme-container {
  background: transparent;
  box-shadow: none;
  padding: 1.25rem 0 0;
  margin: 0;
}
.swagger-ui .scheme-container .schemes {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0.9rem 1.25rem;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  align-items: center;
}
.swagger-ui .scheme-container .schemes > .schemes-server-container { margin: 0; }

/* -------------------------------------------------------------- form fields */

.swagger-ui select,
.swagger-ui input[type=text],
.swagger-ui input[type=password],
.swagger-ui input[type=email],
.swagger-ui input[type=search],
.swagger-ui input[type=file],
.swagger-ui textarea {
  background: var(--bg);
  color: var(--fg);
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: none;
  outline: none;
}
.swagger-ui select { background-image: none; padding-right: 0.75rem; }
.swagger-ui textarea { font-family: var(--mono); }
.swagger-ui input:focus,
.swagger-ui select:focus,
.swagger-ui textarea:focus { border-color: var(--accent); }
.swagger-ui input::placeholder,
.swagger-ui textarea::placeholder { color: var(--dim); }
.swagger-ui .parameter__name.required:after { color: var(--delete); }

/* ------------------------------------------------------------------ buttons */

.swagger-ui .btn {
  background: transparent;
  color: var(--fg);
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: none;
  font-family: var(--sans);
  font-weight: 600;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.swagger-ui .btn:hover { border-color: var(--accent); color: var(--accent); box-shadow: none; }
.swagger-ui .btn.authorize,
.swagger-ui .btn.execute {
  background: var(--accent);
  border-color: var(--accent);
  color: #0b0d14;
}
.swagger-ui .btn.authorize:hover,
.swagger-ui .btn.execute:hover { background: #ff9c4d; border-color: #ff9c4d; color: #0b0d14; }
.swagger-ui .btn.authorize span { color: inherit; }
.swagger-ui .btn.authorize svg { fill: #0b0d14; }
.swagger-ui .btn.cancel { border-color: var(--delete); color: var(--delete); background: transparent; }
.swagger-ui .btn.cancel:hover { background: rgba(248, 113, 113, 0.12); color: var(--delete); }
.swagger-ui .auth-btn-wrapper .btn-done { border-color: var(--border); }
.swagger-ui .copy-to-clipboard,
.swagger-ui .copy-to-clipboard button { background: transparent; border-radius: 4px; }
.swagger-ui .copy-to-clipboard svg path { fill: var(--dim); }
.swagger-ui .copy-to-clipboard:hover svg path { fill: var(--accent); }
.swagger-ui .authorization__btn { background: transparent; opacity: 1; }
.swagger-ui .authorization__btn svg { fill: var(--dim); }
.swagger-ui .authorization__btn:hover svg { fill: var(--accent); }
.swagger-ui .authorization__btn.locked svg { fill: var(--accent); }

/* --------------------------------------------------------------- tag groups */

.swagger-ui .opblock-tag-section { margin-bottom: 1.25rem; }
.swagger-ui .opblock-tag {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--fg);
  border-bottom: 1px solid var(--border);
  padding: 1.1rem 0.5rem 0.75rem;
  margin: 0 0 0.75rem;
  transition: background 0.15s ease;
}
.swagger-ui .opblock-tag:hover { background: rgba(255, 255, 255, 0.02); }
.swagger-ui .opblock-tag a.nostyle,
.swagger-ui .opblock-tag a.nostyle span { color: var(--fg); }
.swagger-ui .opblock-tag:hover a.nostyle span { color: var(--accent); }
.swagger-ui .opblock-tag small { font-size: 0.85rem; font-weight: 400; padding-left: 0.75rem; }
.swagger-ui .opblock-tag small p { color: var(--muted); }

/* ------------------------------------------------------------- operations */

.swagger-ui .opblock {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: none;
  margin: 0 0 0.6rem;
  overflow: hidden;
}
.swagger-ui .opblock:hover { border-color: var(--dim); }
.swagger-ui .opblock.is-open { background: var(--panel); }
.swagger-ui .opblock .opblock-summary {
  border-bottom: 1px solid transparent;
  padding: 0.5rem 0.75rem;
  align-items: center;
}
.swagger-ui .opblock.is-open .opblock-summary { border-bottom-color: var(--border); }
.swagger-ui .opblock .opblock-summary-method {
  background: var(--raised);
  color: var(--fg);
  border-radius: 6px;
  font-family: var(--sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-shadow: none;
  box-shadow: none;
  min-width: 5rem;
  padding: 0.5rem 0;
}
.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-path__deprecated {
  font-family: var(--mono);
  font-size: 0.95rem;
  color: var(--fg);
}
.swagger-ui .opblock .opblock-summary-path a span,
.swagger-ui .opblock .opblock-summary-path span { color: var(--fg); }
.swagger-ui .opblock .opblock-summary-description {
  font-family: var(--sans);
  font-size: 0.85rem;
  color: var(--muted);
}
.swagger-ui .opblock .opblock-summary-operation-id { color: var(--dim); }

/* Each method keeps its hue, but as an accent on a dark card rather than a
   pastel fill. */
.swagger-ui .opblock.opblock-get { background: var(--panel); border-color: rgba(96, 165, 250, 0.35); }
.swagger-ui .opblock.opblock-get .opblock-summary-method { background: var(--get); color: #06152b; }
.swagger-ui .opblock.opblock-post { background: var(--panel); border-color: rgba(74, 222, 128, 0.35); }
.swagger-ui .opblock.opblock-post .opblock-summary-method { background: var(--post); color: #052e16; }
.swagger-ui .opblock.opblock-delete { background: var(--panel); border-color: rgba(248, 113, 113, 0.35); }
.swagger-ui .opblock.opblock-delete .opblock-summary-method { background: var(--delete); color: #2b0707; }
.swagger-ui .opblock.opblock-put { background: var(--panel); border-color: rgba(251, 191, 36, 0.35); }
.swagger-ui .opblock.opblock-put .opblock-summary-method { background: var(--put); color: #2a1a02; }
.swagger-ui .opblock.opblock-patch { background: var(--panel); border-color: rgba(45, 212, 191, 0.35); }
.swagger-ui .opblock.opblock-patch .opblock-summary-method { background: var(--patch); color: #042f2a; }
.swagger-ui .opblock.opblock-get .opblock-summary,
.swagger-ui .opblock.opblock-post .opblock-summary,
.swagger-ui .opblock.opblock-delete .opblock-summary,
.swagger-ui .opblock.opblock-put .opblock-summary,
.swagger-ui .opblock.opblock-patch .opblock-summary { border-color: transparent; }
.swagger-ui .opblock.is-open.opblock-get .opblock-summary,
.swagger-ui .opblock.is-open.opblock-post .opblock-summary,
.swagger-ui .opblock.is-open.opblock-delete .opblock-summary,
.swagger-ui .opblock.is-open.opblock-put .opblock-summary,
.swagger-ui .opblock.is-open.opblock-patch .opblock-summary { border-color: var(--border); }

.swagger-ui .opblock .opblock-section-header {
  background: rgba(255, 255, 255, 0.03);
  border-top: 1px solid var(--border-soft);
  box-shadow: none;
  min-height: 2.75rem;
}
.swagger-ui .opblock .opblock-section-header h4,
.swagger-ui .opblock .opblock-section-header > label,
.swagger-ui .opblock .opblock-section-header > label > span {
  color: var(--muted);
  font-family: var(--sans);
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.swagger-ui .opblock-body { background: transparent; }
.swagger-ui .opblock-description-wrapper,
.swagger-ui .opblock-external-docs-wrapper,
.swagger-ui .opblock-title_normal { color: var(--fg); }

/* -------------------------------------------------------- tables & responses */

.swagger-ui table thead tr td,
.swagger-ui table thead tr th {
  color: var(--dim);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--border);
}
.swagger-ui .responses-inner { padding: 1.25rem; }
.swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5 {
  color: var(--dim);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.swagger-ui .responses-table .response-col_status { font-family: var(--mono); color: var(--fg); }
.swagger-ui .response-col_status .response-undocumented { color: var(--dim); }
.swagger-ui .responses-table tbody tr td { border-top: 1px solid var(--border-soft); }
.swagger-ui .response-control-media-type__accept-message { color: var(--post); }
.swagger-ui .parameters-col_description select,
.swagger-ui .response-control-media-type select { min-width: 8rem; }
.swagger-ui table.parameters tbody tr td { border-top: 1px solid var(--border-soft); }
.swagger-ui .parameter__name { font-family: var(--mono); font-weight: 600; }
.swagger-ui .parameter__type { font-family: var(--mono); font-size: 0.75rem; }

/* ------------------------------------------------------------ code samples */

.swagger-ui .highlight-code > .microlight,
.swagger-ui .microlight,
.swagger-ui .curl-command .curl,
.swagger-ui .responses-inner pre {
  background: #080a10 !important;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-family: var(--mono);
  font-size: 0.82rem;
}
.swagger-ui .highlight-code > .microlight code,
.swagger-ui .microlight code { font-family: var(--mono); background: none; padding: 0; color: inherit; }
.swagger-ui .curl-command h4 { color: var(--dim); }
.swagger-ui .request-url pre { white-space: pre-wrap; word-break: break-all; }
.swagger-ui .download-contents { background: var(--raised); border-radius: 4px; }

/* --------------------------------------------------------------- tabs */

.swagger-ui .tab li { color: var(--muted); font-size: 0.8rem; }
.swagger-ui .tab li.active { color: var(--accent); }
.swagger-ui .tab li:not(:last-of-type):after { background: var(--border); }
.swagger-ui .tab-header .tab-item.active h4 span:after,
.swagger-ui .opblock .tab-header .tab-item.active h4 span:after { background: var(--accent); }
.swagger-ui .tab-header .tab-item h4 span { color: var(--muted); }
.swagger-ui .tab-header .tab-item.active h4 span { color: var(--fg); }

/* ------------------------------------------------------------- schemas */

.swagger-ui section.models {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin: 2rem 0 3rem;
}
.swagger-ui section.models.is-open h4 { border-bottom: 1px solid var(--border); margin: 0; padding: 0.9rem 1.25rem; }
.swagger-ui section.models h4 { color: var(--fg); font-size: 1rem; font-weight: 700; }
.swagger-ui section.models .model-container {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 8px;
  margin: 0 1rem 1rem;
}
.swagger-ui section.models .model-container:hover { background: rgba(255, 255, 255, 0.06); }
.swagger-ui .model-box { background: transparent; }
.swagger-ui .model-title,
.swagger-ui .model .property.primitive,
.swagger-ui .model { color: var(--fg); font-family: var(--mono); }
.swagger-ui .model-toggle:after {
  background: none;
  content: "\25BE";
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1;
  height: auto;
  width: auto;
  transform: none;
}
.swagger-ui .model-toggle.collapsed:after { content: "\25B8"; }
.swagger-ui .prop-type { color: var(--accent); }
.swagger-ui .prop-name { font-family: var(--mono); }
.swagger-ui .model-deprecated-warning { color: var(--delete); }
.swagger-ui table.model tr.property-row td { color: var(--fg); }
.swagger-ui table.model tr.property-row td:first-child { font-family: var(--mono); }
.swagger-ui table.model tr.description { color: var(--muted); }

/* ------------------------------------------------------------- schemas */
/* Swagger 5 draws both the Schemas section and every request/response body
   with the JSON-Schema-2020-12 component. Out of the box it is dark-on-white,
   and it puts an "Expand all" button on every row, which pushes each type off
   to a different x position and makes the list look ragged. The rules below
   lay each row out as name / type / constraint and keep the deep-expand
   control on the root of a schema only. */

.swagger-ui .json-schema-2020-12 { color: var(--fg); }
.swagger-ui .json-schema-2020-12-head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding: 0.2rem 0;
}
.swagger-ui .json-schema-2020-12-accordion {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
}
/* A fixed name column is what lines the types up into one edge. */
.swagger-ui .json-schema-2020-12--embedded > .json-schema-2020-12-head > .json-schema-2020-12-accordion {
  min-width: 15rem;
  justify-content: flex-start;
}
.swagger-ui .json-schema-2020-12-accordion__children { display: inline-flex; align-items: center; }
.swagger-ui .json-schema-2020-12-accordion__icon svg {
  width: 16px;
  height: 16px;
  fill: var(--dim);
}
.swagger-ui .json-schema-2020-12-accordion:hover .json-schema-2020-12-accordion__icon svg { fill: var(--accent); }

.swagger-ui .json-schema-2020-12__title,
.swagger-ui .json-schema-2020-12-property .json-schema-2020-12__title,
.swagger-ui .json-schema-2020-12-keyword .json-schema-2020-12__title,
.swagger-ui .json-schema-2020-12-accordion .json-schema-2020-12__title {
  font-family: var(--mono);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--fg);
}
/* Root of each schema reads as a heading; its properties are body text. */
.swagger-ui article[data-json-schema-level="0"] > .json-schema-2020-12-head .json-schema-2020-12__title {
  font-size: 0.95rem;
}
.swagger-ui .json-schema-2020-12-property--required > article > .json-schema-2020-12-head .json-schema-2020-12__title:after {
  color: var(--delete);
  font-weight: 700;
}

/* Types sit in their own column, quietly; the accent is saved for the
   constraint chips, which are the part worth spotting. */
.swagger-ui .json-schema-2020-12__attribute {
  font-family: var(--mono);
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--muted);
  text-transform: none;
}
.swagger-ui article[data-json-schema-level="0"] > .json-schema-2020-12-head > .json-schema-2020-12__attribute--primary { color: var(--dim); }
.swagger-ui .json-schema-2020-12__constraint {
  background: var(--accent-soft);
  color: var(--accent);
  border-radius: 4px;
  font-family: var(--mono);
  font-size: 0.72rem;
  font-weight: 500;
  padding: 0.05rem 0.4rem;
  margin-left: 0.15rem;
}

/* "Expand all" belongs on the schema, not on every scalar row inside it. */
.swagger-ui .json-schema-2020-12-expand-deep-button {
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--dim);
  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 0.1rem 0.55rem;
  cursor: pointer;
}
.swagger-ui .json-schema-2020-12-expand-deep-button:hover { color: var(--accent); border-color: var(--accent); }
.swagger-ui article[data-json-schema-level]:not([data-json-schema-level="0"]) > .json-schema-2020-12-head > .json-schema-2020-12-expand-deep-button { display: none; }

/* Nesting: one hairline rail per level, so depth is readable at a glance. */
.swagger-ui .json-schema-2020-12-keyword--properties > ul {
  list-style: none;
  margin: 0.25rem 0 0.25rem 0.35rem;
  padding: 0 0 0 0.9rem;
  /* One step brighter than --border: the rail sits on the raised card, where
     the standard border colour disappears. */
  border-left: 1px solid #2c3245;
}
.swagger-ui .json-schema-2020-12-property { padding: 0.15rem 0; }
.swagger-ui .json-schema-2020-12-body--collapsed { display: none; }

/* Keyword rows (description, enum, examples…) shown when a property opens. */
.swagger-ui .json-schema-2020-12-keyword__name {
  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--dim);
}
.swagger-ui .json-schema-2020-12-keyword__name--primary { color: var(--dim); }
.swagger-ui .json-schema-2020-12-keyword__value,
.swagger-ui .json-schema-2020-12-keyword__value--primary { color: var(--muted); font-family: var(--sans); }
.swagger-ui .json-schema-2020-12__description p { color: var(--muted); margin: 0.2rem 0; }

/* The Schemas section itself: one card per schema. */
.swagger-ui section.models .no-margin { padding: 0.5rem 0.75rem 1rem; }
.swagger-ui section.models > .no-margin > article.json-schema-2020-12 {
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  padding: 0.6rem 0.9rem;
  margin: 0.5rem 0;
}
.swagger-ui section.models > .no-margin > article.json-schema-2020-12:hover { border-color: var(--border); }
.swagger-ui .models-control,
.swagger-ui .models-control span { color: var(--fg); background: transparent; }
.swagger-ui .models-control svg { fill: var(--muted); }

/* --------------------------------------------------------------- auth modal */

.swagger-ui .dialog-ux .modal-ux {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
}
.swagger-ui .dialog-ux .modal-ux-header { border-bottom: 1px solid var(--border); }
.swagger-ui .dialog-ux .modal-ux-header h3,
.swagger-ui .dialog-ux .modal-ux-content h4,
.swagger-ui .dialog-ux .modal-ux-content p { color: var(--fg); }
.swagger-ui .dialog-ux .backdrop-ux { background: rgba(5, 6, 10, 0.72); }
.swagger-ui .auth-container { border-bottom: 1px solid var(--border); }
.swagger-ui .auth-container .wrapper { padding: 0; }
.swagger-ui .scopes h2 { color: var(--fg); }

/* ------------------------------------------------------------------ misc */

/* The stock arrows and the "expand all" chevrons are black SVGs. */
.swagger-ui svg:not(:root) { fill: var(--muted); }
.swagger-ui .btn.authorize svg,
.swagger-ui .btn.execute svg,
.swagger-ui .btn.authorize svg path,
.swagger-ui .btn.execute svg path { fill: #0b0d14; }
.swagger-ui .expand-methods:hover svg,
.swagger-ui .expand-operation:hover svg { fill: var(--accent); }
.swagger-ui .errors-wrapper {
  background: rgba(248, 113, 113, 0.08);
  border: 1px solid var(--delete);
  border-radius: var(--radius);
}
.swagger-ui .errors-wrapper .errors h4,
.swagger-ui .errors-wrapper hgroup h4 { color: var(--delete); }
.swagger-ui .loading-container .loading:after { color: var(--muted); }
.swagger-ui .no-margin { color: var(--fg); }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

@media (max-width: 640px) {
  .hawt-masthead__inner { padding: 1rem 16px; gap: 1rem; }
  .hawt-brand img { width: 48px; height: 48px; }
  .hawt-brand__name { font-size: 1.3rem; }
  .swagger-ui .wrapper { padding: 0 16px; }
}

/* ------------------------------------------------------------------ ReDoc */
/* Everything ReDoc paints comes from the theme object passed to Redoc.init;
   these few surfaces are hard-coded in its stylesheet and need overriding. */
#hawt-redoc h5 { color: var(--muted); }
#hawt-redoc .react-tabs__tab--selected {
  background: rgba(255, 255, 255, 0.08);
  color: var(--fg);
}
#hawt-redoc a[href*="redocly"],
#hawt-redoc a[href*="redoc"] img { opacity: 0.7; }
