/* guide-dev.css - copy buttons + code-language tabs + live API tools. Scoped to
   .article-body so nothing else on the site is affected. Pairs with guide-dev.js. */

/* ---- copy button ---- */
.article-body .pm-codewrap { position: relative; }
.pm-copy {
  position: absolute; top: 8px; inset-inline-end: 8px;
  width: 32px; height: 32px; display: grid; place-items: center; padding: 0;
  border: 1px solid var(--pm-border, #2a2d35); border-radius: 7px;
  background: rgba(255, 255, 255, .05); color: var(--text-secondary); cursor: pointer;
  opacity: 0; transition: opacity .15s ease, color .15s ease, background .15s ease; z-index: 3;
}
.article-body .pm-codewrap:hover .pm-copy, .pm-copy:focus-visible { opacity: 1; }
.pm-copy:hover { color: var(--text-strong); background: rgba(255, 255, 255, .12); }
.pm-copy.pm-copied { color: #22c55e; opacity: 1; border-color: rgba(34, 197, 94, .5); }
.pm-copy svg { display: block; }
@media (hover: none) { .pm-copy { opacity: .7; } }

/* ---- code-language tabs ---- */
.article-body .pm-code-tabs { margin: 1.1em 0; }
.pm-code-tabbar {
  display: flex; gap: 2px; flex-wrap: wrap;
  border: 1px solid var(--pm-border, #2a2d35); border-bottom: 0; border-radius: 10px 10px 0 0;
  background: rgba(255, 255, 255, .03); padding: 6px 6px 0;
}
.pm-code-tab {
  appearance: none; border: 0; background: transparent; color: var(--text-secondary);
  font: 600 13px/1 var(--font-body, system-ui); padding: 9px 14px;
  border-radius: 7px 7px 0 0; cursor: pointer; transition: color .12s ease, background .12s ease;
}
.pm-code-tab:hover { color: var(--text); }
.pm-code-tab.is-active { color: var(--text-strong); background: var(--pm-card, #0f141a); box-shadow: inset 0 2px 0 var(--pm-accent, #6ea8ff); }
.pm-code-tabs pre { margin-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; }
.pm-code-tabs .pm-codewrap { margin: 0; }

/* ---- live tools (market search + sandbox) ---- */
.pm-tool-card {
  margin: 1.6em 0; padding: 18px; border: 1px solid var(--pm-border, #2a2d35);
  border-radius: 12px; background: linear-gradient(180deg, rgba(110,168,255,.05), rgba(110,168,255,.01));
}
.pm-tool-title { font: 700 15px/1.3 var(--font-body, system-ui); color: var(--text-strong); margin-bottom: 12px; }
.pm-tool-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 10px; }
.pm-tool-fields { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.pm-tool-field { display: flex; flex-direction: column; gap: 4px; font: 600 11px/1 var(--font-body, system-ui); color: var(--text-secondary); }
.pm-tool-input {
  background: var(--pm-card, #0f141a); border: 1px solid var(--pm-border, #2a2d35); color: var(--text);
  border-radius: 8px; padding: 9px 12px; font: 14px/1.2 var(--font-body, system-ui); min-width: 160px; flex: 1;
}
.pm-tool-input:focus { outline: none; border-color: var(--pm-accent, #6ea8ff); }
select.pm-tool-input { width: 100%; flex: none; margin-bottom: 10px; cursor: pointer; }
.pm-tool-btn {
  background: var(--pm-accent, #6ea8ff); color: #06101f; border: 0; border-radius: 8px;
  padding: 10px 18px; font: 700 14px/1 var(--font-body, system-ui); cursor: pointer; transition: filter .12s ease;
}
.pm-tool-btn:hover { filter: brightness(1.08); }
.pm-tool-url { font: 12px/1.4 var(--font-mono, ui-monospace, monospace); color: var(--text-secondary); margin: 8px 0 6px; word-break: break-all; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pm-tool-url code { background: transparent; color: #8fbfff; }
.pm-tool-out {
  background: #06090d; border: 1px solid var(--pm-border, #2a2d35); border-radius: 8px;
  padding: 12px 14px; margin: 0; max-height: 340px; overflow: auto;
  font: 12.5px/1.5 var(--font-mono, ui-monospace, monospace); color: #c8ccd4; white-space: pre-wrap; word-break: break-word;
}
.pm-tool-result { border: 1px solid var(--pm-border, #2a2d35); border-radius: 9px; padding: 12px; margin-bottom: 10px; background: rgba(255,255,255,.02); }
.pm-tool-result-title { font: 600 14px/1.4 var(--font-body, system-ui); color: var(--text-strong); }
.pm-tool-result-meta { font: 12px/1.4 var(--font-mono, ui-monospace, monospace); color: var(--text-secondary); margin: 4px 0 8px; word-break: break-all; }
.pm-tool-result-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.pm-tool-chip {
  background: rgba(255,255,255,.06); border: 1px solid var(--pm-border, #2a2d35); color: var(--text-secondary);
  border-radius: 999px; padding: 5px 11px; font: 600 12px/1 var(--font-body, system-ui); cursor: pointer; transition: background .12s ease, color .12s ease;
}
.pm-tool-chip:hover { background: rgba(255,255,255,.12); color: var(--text-strong); }
.pm-tool-ids { margin-top: 8px; }
.pm-tool-idbox { border-top: 1px dashed var(--pm-border, #2a2d35); padding-top: 8px; margin-top: 8px; }
.pm-tool-idrow { display: flex; gap: 8px; align-items: center; justify-content: space-between; font: 12px/1.5 var(--font-mono, ui-monospace, monospace); color: var(--text-secondary); margin: 3px 0; flex-wrap: wrap; }

/* ---- hide the guide sidebar scrollbar (per owner) — keep scroll, drop the visible bar.
   guide-dev.css loads after style.css on guide pages, so this overrides .article-toc-wrap. ---- */
.article-layout > .article-toc-wrap { scrollbar-width: none; }
.article-layout > .article-toc-wrap::-webkit-scrollbar { width: 0; height: 0; display: none; }

/* ---- code-language tabs: force the active <pre> flush under the tab bar, overriding
   guide-typography.css .article-body pre (border/radius/margin). Tabs are our component. ---- */
.article-body .pm-code-tabs { margin: 1.1em 0; }
.article-body .pm-code-tabs .pm-codewrap { margin: 0; }
.article-body .pm-code-tabs pre {
  margin: 0 !important;
  border-top: 0 !important;
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}
.article-body .pm-code-tabbar { margin: 0; }

/* ---- better prev/next (per owner): bordered cards, hover accent, clear labels ---- */
.article-prev-next { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 28px 0; }
@media (max-width: 640px) { .article-prev-next { grid-template-columns: 1fr; } }
.article-prev-next .apn-card { display: flex; align-items: center; gap: 12px; border: 1px solid var(--border, #2a2d35); border-radius: 12px; padding: 14px 16px; background: var(--bg-card, #11161d); text-decoration: none; transition: border-color .15s, transform .15s, background .15s; }
.article-prev-next .apn-card:hover { border-color: var(--accent, #6ea8ff); transform: translateY(-1px); background: rgba(110,168,255,.05); }
.article-prev-next .apn-next { flex-direction: row-reverse; text-align: right; }
.article-prev-next .apn-arrow { font-size: 20px; line-height: 1; color: var(--accent, #6ea8ff); flex: none; }
.article-prev-next .apn-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.article-prev-next .apn-label { font: 600 11px/1 var(--font-mono, ui-monospace, monospace); text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted, #9da2ae); }
.article-prev-next .apn-title { font: 600 14px/1.35 var(--font-body, system-ui); color: var(--text-strong, #fff); }
.article-prev-next .apn-empty { border: 0; background: none; pointer-events: none; }
@media (max-width: 640px) { .article-prev-next .apn-empty { display: none; } }
