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

  :root {
    --mg-primary:#1B4965; --mg-primary-dark:#0F2D3D; --mg-primary-light:#2D6A8F;
    --mg-accent:#E07A3A; --mg-accent-light:#F09A5B; --mg-accent-dark:#B85A22;
    --mg-surface:#FFFFFF; --mg-raised:#F7F8FA; --mg-bg:#F3F5F8;
    --mg-border:#E4E8EC; --mg-border-strong:#CBD1D8;
    --mg-text:#18202B; --mg-text-2:#586170; --mg-text-muted:#7A828E;
    --mg-get:#1C6C8C; --mg-post:#2E8B57; --mg-put:#C67A2E; --mg-delete:#C53030; --mg-patch:#6D5AA8;
    --mg-font-display:'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --mg-font-body:'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --mg-font-mono:'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  }

  body { background: var(--mg-bg); margin:0; }
  .swagger-ui { font-family: var(--mg-font-body); color: var(--mg-text); }
  .swagger-ui .info, .swagger-ui .info li, .swagger-ui .info p, .swagger-ui .info table,
  .swagger-ui .markdown p, .swagger-ui .markdown li { font-family: var(--mg-font-body); color: var(--mg-text-2); }
  .swagger-ui h1, .swagger-ui h2, .swagger-ui h3, .swagger-ui h4, .swagger-ui h5,
  .swagger-ui .opblock-tag, .swagger-ui .model-title { font-family: var(--mg-font-display); color: var(--mg-text); }
  .swagger-ui code, .swagger-ui pre, .swagger-ui .microlight, .swagger-ui .prop-type,
  .swagger-ui input, .swagger-ui textarea, .swagger-ui .opblock-summary-method,
  .swagger-ui .response-col_status, .swagger-ui .parameter__name { font-family: var(--mg-font-mono); }

  /* ---- Topbar ---- */
  .swagger-ui .topbar { background: linear-gradient(100deg,#0C2632 0%,#123A4F 46%,#1B4965 78%,#2D6A8F 100%);
    padding: 0; box-shadow: 0 6px 26px rgba(12,38,50,.30); border-bottom: 1px solid rgba(255,255,255,.06); }
  .swagger-ui .topbar .topbar-wrapper { max-width: 1200px; margin: 0 auto; padding: 0 28px; height: 62px; display:flex; align-items:center; flex-wrap:nowrap; }
  .swagger-ui .topbar .topbar-wrapper .link { display: none !important; }
  .swagger-ui .topbar .download-url-wrapper { display: none !important; }
  .swagger-ui .topbar .mg-brand { display: flex; align-items: center; gap: 12px; width: 100%; height: 62px; }
  .swagger-ui .topbar .mg-brand-logo { width: 36px; height: 36px; border-radius: 10px; display:flex; align-items:center; justify-content:center;
    background: linear-gradient(140deg, var(--mg-accent-light) 0%, var(--mg-accent) 48%, var(--mg-accent-dark) 100%);
    box-shadow: 0 4px 12px rgba(184,90,34,.44), inset 0 1px 0 rgba(255,255,255,.28); }
  .swagger-ui .topbar .mg-brand-logo svg { width: 21px; height: 21px; color:#fff; }
  .swagger-ui .topbar .mg-brand-name { font-family: var(--mg-font-display); font-weight:700; font-size:22px; color:#fff; letter-spacing:-.01em; }
  .swagger-ui .topbar .mg-brand-tag { font-family: var(--mg-font-mono); font-size:10px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
    color:#CFE3EE; border:1px solid rgba(255,255,255,.30); border-radius:6px; padding:3px 7px; margin-left:-2px; }
  .swagger-ui .topbar .mg-brand-spacer { flex:1 1 auto; }
  .swagger-ui .topbar .mg-brand-nav { display:flex; align-items:center; gap:26px; }
  .swagger-ui .topbar .mg-brand-link { font-family: var(--mg-font-body); font-size:14px; font-weight:500; color:#CBDCE6; text-decoration:none;
    white-space:nowrap; transition: color .15s ease; }
  .swagger-ui .topbar .mg-brand-link:hover { color:#fff; }
  .swagger-ui .topbar .mg-brand-link.mg-cta { background: rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); color:#fff;
    padding:7px 14px; border-radius:8px; }
  .swagger-ui .topbar .mg-brand-link.mg-cta:hover { background: rgba(255,255,255,.20); }

  /* ---- Hero ---- */
  .mg-hero { max-width:1200px; margin: 0 auto; padding: 40px 28px 8px; }
  .mg-hero-eyebrow { font-family: var(--mg-font-mono); font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
    color: var(--mg-accent-dark); margin: 0 0 10px; }
  .mg-hero-title { font-family: var(--mg-font-display); font-weight:700; font-size:2.6rem; line-height:1.05; letter-spacing:-.025em;
    color: var(--mg-primary-dark); margin: 0 0 12px; }
  .mg-hero-sub { font-size:1.06rem; line-height:1.55; color: var(--mg-text-2); max-width: 62ch; margin: 0 0 22px; }
  .mg-hero-chips { display:flex; flex-wrap:wrap; gap:10px; margin: 0 0 22px; }
  .mg-chip { display:inline-flex; align-items:center; gap:8px; background: var(--mg-surface); border:1px solid var(--mg-border);
    border-radius:9px; padding:8px 13px; font-size:13px; color: var(--mg-text-2); box-shadow: 0 1px 2px rgba(24,32,43,.04); }
  .mg-chip b { color: var(--mg-text); font-weight:600; }
  .mg-chip code { font-family: var(--mg-font-mono); font-size:12.5px; color: var(--mg-primary); background:none; padding:0; }
  .mg-chip-dot { width:7px; height:7px; border-radius:50%; background: var(--mg-post); }
  .mg-hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
  .mg-btn { display:inline-flex; align-items:center; gap:8px; font-family: var(--mg-font-body); font-weight:600; font-size:14px;
    text-decoration:none; border-radius:10px; padding:11px 20px; transition: transform .12s ease, box-shadow .12s ease, background .12s ease; }
  .mg-btn-primary { background: linear-gradient(135deg, var(--mg-primary-light) 0%, var(--mg-primary) 60%, var(--mg-primary-dark) 100%);
    color:#fff; box-shadow: 0 4px 14px rgba(27,73,101,.32); }
  .mg-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 7px 20px rgba(27,73,101,.40); }
  .mg-btn-ghost { background: var(--mg-surface); color: var(--mg-primary); border:1px solid var(--mg-border-strong); }
  .mg-btn-ghost:hover { transform: translateY(-1px); border-color: var(--mg-primary-light); }

  /* ---- Info block: hide duplicate title, keep the rich spec-driven description ---- */
  .swagger-ui .information-container { max-width:1200px; margin:0 auto; padding: 0 28px; background: transparent; }
  .swagger-ui .information-container .info { margin: 8px 0 26px; }
  .swagger-ui .information-container .info hgroup.main { display:none; }
  .swagger-ui .info .description h2 { font-family: var(--mg-font-display); font-size:1.15rem; font-weight:700; color: var(--mg-primary-dark);
    margin: 30px 0 12px; padding: 0 0 8px; border-bottom: 2px solid var(--mg-border); }
  .swagger-ui .info .description h3 { color: var(--mg-primary); font-weight:600; }
  .swagger-ui .info .description a { color: var(--mg-accent-dark); font-weight:500; }
  .swagger-ui .info .description code { background:#FBEDE3; color: var(--mg-accent-dark); padding:1.5px 6px; border-radius:5px; font-size:86%; }
  .swagger-ui .info .description ul { padding-left: 20px; }
  .swagger-ui .info .description li { margin: 4px 0; }
  .swagger-ui .info .description p { line-height:1.6; }

  /* ---- Servers / authorize bar ---- */
  .swagger-ui .scheme-container { max-width:1200px; margin: 0 auto 26px; background: var(--mg-surface); border:1px solid var(--mg-border);
    border-radius:14px; box-shadow: 0 1px 3px rgba(24,32,43,.06); padding: 18px 24px; }

  /* ---- Buttons: brand teal for all actions (no orange/green clash) ---- */
  .swagger-ui .btn { border-radius:9px; font-family: var(--mg-font-body); font-weight:600; box-shadow:none;
    transition: transform .12s ease, background .12s ease, border-color .12s ease; }
  .swagger-ui .btn:hover { transform: translateY(-1px); }
  .swagger-ui .btn.authorize { background: var(--mg-primary); border-color: var(--mg-primary); color:#fff; }
  .swagger-ui .btn.authorize svg { fill:#fff; }
  .swagger-ui .btn.authorize:hover { background: var(--mg-primary-dark); border-color: var(--mg-primary-dark); }
  .swagger-ui .btn.execute { background: var(--mg-primary); border-color: var(--mg-primary); color:#fff; }
  .swagger-ui .btn.execute:hover { background: var(--mg-primary-dark); }
  .swagger-ui .btn.cancel { background: var(--mg-surface); border-color: var(--mg-delete); color: var(--mg-delete); }
  .swagger-ui .authorization__btn { color: var(--mg-primary); }

  /* ---- Operation blocks (cards, colour-coded by method) ---- */
  .swagger-ui .opblock { border-radius:13px; border:1px solid var(--mg-border); background: var(--mg-surface);
    box-shadow: 0 1px 3px rgba(24,32,43,.05); margin: 0 0 12px; overflow:hidden; transition: box-shadow .15s ease; }
  .swagger-ui .opblock:hover { box-shadow: 0 4px 16px rgba(24,32,43,.09); }
  .swagger-ui .opblock .opblock-summary { border:none; padding: 6px 8px; }
  .swagger-ui .opblock .opblock-summary-method { border-radius:8px; min-width:82px; height:32px; line-height:32px; padding:0 12px;
    font-weight:700; font-size:13px; box-shadow:none; letter-spacing:.03em; text-shadow:none; }
  .swagger-ui .opblock.opblock-get { border-color: rgba(28,108,140,.28); }
  .swagger-ui .opblock.opblock-get .opblock-summary-method { background: var(--mg-get); }
  .swagger-ui .opblock.opblock-get .opblock-summary { background: rgba(28,108,140,.045); }
  .swagger-ui .opblock.opblock-post { border-color: rgba(46,139,87,.30); }
  .swagger-ui .opblock.opblock-post .opblock-summary-method { background: var(--mg-post); }
  .swagger-ui .opblock.opblock-post .opblock-summary { background: rgba(46,139,87,.05); }
  .swagger-ui .opblock.opblock-put { border-color: rgba(198,122,46,.32); }
  .swagger-ui .opblock.opblock-put .opblock-summary-method { background: var(--mg-put); }
  .swagger-ui .opblock.opblock-put .opblock-summary { background: rgba(198,122,46,.06); }
  .swagger-ui .opblock.opblock-delete { border-color: rgba(197,48,48,.28); }
  .swagger-ui .opblock.opblock-delete .opblock-summary-method { background: var(--mg-delete); }
  .swagger-ui .opblock.opblock-delete .opblock-summary { background: rgba(197,48,48,.045); }
  .swagger-ui .opblock.opblock-patch .opblock-summary-method { background: var(--mg-patch); }
  .swagger-ui .opblock .opblock-summary-path { color: var(--mg-text); font-family: var(--mg-font-mono); font-weight:500; }
  .swagger-ui .opblock .opblock-summary-path b { color: var(--mg-primary-dark); }
  .swagger-ui .opblock .opblock-summary-description { color: var(--mg-text-2); font-family: var(--mg-font-body); }
  .swagger-ui .opblock-body { border-top:1px solid var(--mg-border); background: var(--mg-raised); }

  /* ---- Tag section headers ---- */
  .swagger-ui .opblock-tag-section > .opblock-tag { font-family: var(--mg-font-display); font-size:1.28rem; font-weight:700;
    color: var(--mg-primary-dark); border-bottom:1px solid var(--mg-border); margin: 8px 0 6px; padding: 14px 0 10px; }
  .swagger-ui .opblock-tag small { color: var(--mg-text-muted); font-family: var(--mg-font-body); font-weight:400; font-size:13px; }
  .swagger-ui .opblock-tag:hover { background: transparent; }

  /* ---- Models + inputs ---- */
  .swagger-ui section.models { border:1px solid var(--mg-border); border-radius:13px; background: var(--mg-surface); }
  .swagger-ui section.models.is-open h4 { border-bottom:1px solid var(--mg-border); }
  .swagger-ui .model-title { color: var(--mg-primary-dark); }
  .swagger-ui .prop-type { color: var(--mg-accent-dark); }
  .swagger-ui input[type=text], .swagger-ui input[type=email], .swagger-ui input[type=password],
  .swagger-ui textarea, .swagger-ui select { border-radius:8px; border:1px solid var(--mg-border-strong); }
  .swagger-ui input:focus, .swagger-ui textarea:focus, .swagger-ui select:focus { outline:none; border-color: var(--mg-primary-light);
    box-shadow: 0 0 0 3px rgba(45,106,143,.18); }

  /* ---- Misc ---- */
  .swagger-ui a { color: var(--mg-accent-dark); }
  .swagger-ui .response-col_status { color: var(--mg-primary-dark); }
  .swagger-ui table thead tr th { color: var(--mg-text-2); border-bottom:2px solid var(--mg-border); font-family: var(--mg-font-body); }
  .swagger-ui .parameter__name { color: var(--mg-text); }
  .swagger-ui .tab li { color: var(--mg-text-2); }
  .swagger-ui ::-webkit-scrollbar { width:10px; height:10px; }
  .swagger-ui ::-webkit-scrollbar-thumb { background: var(--mg-border-strong); border-radius:6px; }
  @media (max-width: 640px) {
    .swagger-ui .topbar .mg-brand-nav .mg-brand-link:not(.mg-cta) { display:none; }
    .mg-hero { padding: 28px 20px 4px; }
    .mg-hero-title { font-size:2rem; }
  }
