/* NotifyGates brand skin for the Swagger UI docs page (/docs).
   Tokens mirror SendBridges/Theme/NotifygatesTheme.cs and notifygates-app.css:
   House Green #1E3932, Green Accent #00754A, Green Uplift #2B5148, warm cream #F2F0EB, gold #CBA258.
   Type: Lora for headings, Manrope for everything else — same pairing as the dashboard. */
@import url('https://fonts.googleapis.com/css2?family=Lora:wght@500;600;700&family=Manrope:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  --ng-house: #1E3932;
  --ng-accent: #00754A;
  --ng-uplift: #2B5148;
  --ng-cream: #F2F0EB;
  --ng-mint: #D4E9E2;
  --ng-gold: #CBA258;
  --ng-ink: #1E3932;
  --ng-muted: rgba(0, 0, 0, 0.58);
  --ng-line: rgba(30, 57, 50, 0.14);
}

html, body { background: var(--ng-cream); }
body { margin: 0; }

.swagger-ui,
.swagger-ui .opblock .opblock-summary-description,
.swagger-ui .opblock-description-wrapper p,
.swagger-ui .opblock-external-docs-wrapper p,
.swagger-ui .opblock-title_normal p,
.swagger-ui .response-col_description,
.swagger-ui table thead tr td,
.swagger-ui table thead tr th,
.swagger-ui .parameter__name,
.swagger-ui .tab li,
.swagger-ui label,
.swagger-ui .btn {
  font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  color: var(--ng-ink);
}

/* ---------- Top bar: house green with the twin-signal mark ---------- */
.swagger-ui .topbar {
  background: var(--ng-house);
  padding: 12px 0;
  border-bottom: 3px solid var(--ng-accent);
}
.swagger-ui .topbar .download-url-wrapper { display: none; }
.swagger-ui .topbar-wrapper { padding: 0 20px; }
.swagger-ui .topbar-wrapper a { pointer-events: none; }
.swagger-ui .topbar-wrapper img,
.swagger-ui .topbar-wrapper svg { display: none; }
.swagger-ui .topbar-wrapper a { display: flex; align-items: center; }
.swagger-ui .topbar-wrapper a::before {
  content: '';
  width: 36px;
  height: 36px;
  /* the mark's back tile is house green, so it sits on a cream badge to stay visible on the bar */
  background: url('/docs/notifygates-mark.svg') center / 78% no-repeat, var(--ng-cream);
  border-radius: 10px;
  display: inline-block;
}
.swagger-ui .topbar-wrapper a::after {
  content: 'NotifyGates  \00b7  API';
  color: #fff;
  font: 700 18px/1 'Manrope', sans-serif;
  letter-spacing: .01em;
  margin-left: 10px;
}

/* ---------- Intro: same treatment as the endpoint blocks below (tinted green card, green border) ---------- */
.swagger-ui .wrapper { max-width: 1040px; }
.swagger-ui .info {
  margin: 32px 0 28px;
  padding: 8px 28px 24px;
  background: rgba(0, 117, 74, .05);
  border: 1px solid var(--ng-accent);
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(30, 57, 50, .06);
}
.swagger-ui .info .title {
  font-family: 'Lora', Georgia, serif;
  font-weight: 700;
  color: var(--ng-house);
  letter-spacing: -.01em;
}
.swagger-ui .info .title small.version-stamp,
.swagger-ui .info .title small { background: var(--ng-accent); border-radius: 50px; }
.swagger-ui .info .title small.version-stamp pre { color: #fff; }
.swagger-ui .info a, .swagger-ui .info .base-url { color: var(--ng-accent); }
.swagger-ui .info .description,
.swagger-ui .info .renderedMarkdown p,
.swagger-ui .info li,
.swagger-ui .info table { color: var(--ng-ink); font-size: 15px; line-height: 1.65; }
.swagger-ui .info h2 {
  font-family: 'Lora', Georgia, serif;
  color: var(--ng-house);
  font-size: 22px;
  margin: 30px 0 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(0, 117, 74, .3);
}
.swagger-ui .info strong { color: var(--ng-house); }
.swagger-ui .info code,
.swagger-ui .markdown code,
.swagger-ui .renderedMarkdown code {
  background: var(--ng-mint);
  color: var(--ng-house);
  border-radius: 6px;
  padding: 2px 6px;
  font-family: 'JetBrains Mono', Consolas, monospace;
  font-size: .88em;
}
/* code samples: identical to the endpoint example bodies below — #1E3932 panel, white keys/names,
   #A2FCA2 string values, 600 weight (see swagger-brand.js for the string colouring) */
.swagger-ui .info .renderedMarkdown pre {
  background: var(--ng-house);
  color: #FFFFFF;
  border: 0;
  border-radius: 10px;
  padding: 12px 14px;
  overflow-x: auto;
  white-space: pre;
  word-break: normal;
}
.swagger-ui .info .renderedMarkdown pre code,
.swagger-ui .info .renderedMarkdown pre code * {
  background: none;
  color: #FFFFFF;
  padding: 0;
  font-family: 'JetBrains Mono', Consolas, monospace;
  font-size: 12px;
  font-weight: 600;
  white-space: pre;
  word-break: normal;
  overflow-wrap: normal;
}
.swagger-ui .info .renderedMarkdown pre code .ng-str { color: #A2FCA2; }
/* tables: same as the endpoint sections — translucent white header bar, body on the tinted card */
.swagger-ui .info table {
  border-collapse: collapse;
  width: 100%;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
}
.swagger-ui .info table th {
  background: rgba(255, 255, 255, .8);
  color: var(--ng-house);
  text-align: left;
  padding: 10px 14px;
  font-weight: 700;
  border-bottom: 1px solid var(--ng-line);
}
.swagger-ui .info table td { border-top: 1px solid var(--ng-line); padding: 10px 14px; vertical-align: top; }
.swagger-ui .info .link { color: var(--ng-accent); }
.swagger-ui .info hr { border-color: var(--ng-line); }

/* ---------- Endpoint groups ---------- */
.swagger-ui .opblock-tag {
  font-family: 'Lora', Georgia, serif;
  color: var(--ng-house);
  border-bottom: 1px solid var(--ng-line);
  font-size: 22px;
}
.swagger-ui .opblock-tag small { color: var(--ng-muted); font-family: 'Manrope', sans-serif; }
.swagger-ui .opblock-tag:hover { background: rgba(0, 117, 74, .05); }

/* ---------- Operation blocks (POST = brand green) ---------- */
.swagger-ui .opblock {
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(30, 57, 50, .06);
  border-width: 1px;
}
.swagger-ui .opblock.opblock-post { border-color: var(--ng-accent); background: rgba(0, 117, 74, .05); }
.swagger-ui .opblock.opblock-post .opblock-summary { border-color: var(--ng-accent); }
.swagger-ui .opblock.opblock-post .opblock-summary-method { background: var(--ng-accent); }
.swagger-ui .opblock.opblock-post .tab-header .tab-item.active h4 span::after { background: var(--ng-accent); }
.swagger-ui .opblock .opblock-summary-method {
  border-radius: 50px;
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
  min-width: 76px;
}
.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-path__deprecated { font-family: 'JetBrains Mono', Consolas, monospace; color: var(--ng-house); }
.swagger-ui .opblock .opblock-summary-description { color: var(--ng-uplift); font-weight: 600; }
.swagger-ui .opblock-body pre.microlight,
.swagger-ui .highlight-code > .microlight {
  background: var(--ng-house) !important;
  border-radius: 10px;
}
.swagger-ui .opblock-section-header {
  background: rgba(255, 255, 255, .7);
  box-shadow: none;
  border-bottom: 1px solid var(--ng-line);
}
.swagger-ui .opblock-section-header h4 { font-family: 'Manrope', sans-serif; color: var(--ng-house); }
.swagger-ui .opblock-description-wrapper p,
.swagger-ui .opblock-description-wrapper li { font-size: 14.5px; line-height: 1.6; }

/* ---------- Buttons: full pill like the dashboard ---------- */
.swagger-ui .btn { border-radius: 50px; font-weight: 700; box-shadow: none; }
.swagger-ui .btn.execute {
  background: var(--ng-accent);
  border-color: var(--ng-accent);
  color: #fff;
  padding: 10px 28px;
}
.swagger-ui .btn.execute:hover { background: var(--ng-uplift); border-color: var(--ng-uplift); }
.swagger-ui .btn.try-out__btn { border-color: var(--ng-accent); color: var(--ng-accent); }
.swagger-ui .btn.try-out__btn:hover { background: var(--ng-accent); color: #fff; }
.swagger-ui .btn.cancel { border-color: #b3261e; color: #b3261e; }
.swagger-ui .btn.btn-clear { border-color: var(--ng-house); color: var(--ng-house); }
.swagger-ui .btn:active { transform: scale(.96); }

/* ---------- Tables, inputs, models ---------- */
.swagger-ui table thead tr th, .swagger-ui table thead tr td { border-bottom: 1px solid var(--ng-line); color: var(--ng-muted); }
.swagger-ui .parameter__name.required::after { color: #b3261e; }
.swagger-ui .parameter__type, .swagger-ui .prop-type { color: var(--ng-accent); }
.swagger-ui input[type=text], .swagger-ui textarea, .swagger-ui select {
  border-radius: 10px;
  border: 1px solid var(--ng-line);
  font-family: 'Manrope', sans-serif;
}
.swagger-ui textarea:focus, .swagger-ui input:focus { outline: 2px solid var(--ng-accent); outline-offset: 0; border-color: var(--ng-accent); }
.swagger-ui section.models { border-radius: 14px; border-color: var(--ng-line); background: #fff; }
.swagger-ui section.models h4 { font-family: 'Lora', serif; color: var(--ng-house); }
.swagger-ui .responses-inner h4, .swagger-ui .responses-inner h5 { color: var(--ng-house); }
.swagger-ui .response-col_status { color: var(--ng-accent); font-weight: 700; }
.swagger-ui .model-title { font-family: 'Manrope', sans-serif; color: var(--ng-house); }
.swagger-ui a.nostyle, .swagger-ui a { color: var(--ng-accent); }
.swagger-ui .scheme-container { background: #fff; box-shadow: none; border-bottom: 1px solid var(--ng-line); }
.swagger-ui .loading-container .loading::after { color: var(--ng-accent); }

@media (max-width: 640px) {
  .swagger-ui .wrapper { padding: 0 16px; }
  .swagger-ui .info .title { font-size: 28px; }
}
