:root {
  --f15pl-ink: #171717;
  --f15pl-muted: #666a73;
  --f15pl-line: #e8e9ed;
  --f15pl-panel: #f7f8fa;
  --f15pl-code: #111318;
  --f15pl-code-ink: #f4f6f8;
  --f15pl-accent: #1f5eff;
  --f15pl-accent-dark: #1647c7;
  --f15pl-radius: 12px;
  --f15pl-font: Inter, "Helvetica Neue", Arial, sans-serif;
}

/* Keep the prompt-library UI insulated from Elementor/theme inheritance. */
.f15pl-page,
.f15pl-page * {
  box-sizing: border-box !important;
}

.f15pl-page {
  color: var(--f15pl-ink) !important;
  background: #fff !important;
  font-family: var(--f15pl-font) !important;
  font-weight: 400 !important;
}

.f15pl-container {
  width: min(1240px, calc(100% - 44px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.f15pl-hero {
  padding: clamp(86px, 8vw, 108px) 0 32px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--f15pl-line) !important;
  background: linear-gradient(180deg, #fafafa 0%, #fff 100%) !important;
}

.f15pl-eyebrow {
  margin: 0 0 10px !important;
  padding: 0 !important;
  color: var(--f15pl-accent) !important;
  font-family: var(--f15pl-font) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}

.f15pl-page .f15pl-hero h1 {
  max-width: 900px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--f15pl-ink) !important;
  font-family: var(--f15pl-font) !important;
  font-size: clamp(34px, 4vw, 50px) !important;
  font-weight: 500 !important;
  line-height: 1.06 !important;
  letter-spacing: -.035em !important;
  text-transform: none !important;
}

.f15pl-lead {
  max-width: 720px !important;
  margin: 15px 0 0 !important;
  padding: 0 !important;
  color: var(--f15pl-muted) !important;
  font-family: var(--f15pl-font) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
}

.f15pl-content-wrap {
  padding-top: 36px !important;
  padding-bottom: 88px !important;
}

.f15pl-shell {
  display: grid !important;
  grid-template-columns: 244px minmax(0, 1fr) !important;
  gap: clamp(36px, 5vw, 66px) !important;
  align-items: start !important;
}

.f15pl-sidebar {
  position: relative !important;
  align-self: stretch !important;
  min-width: 0 !important;
}

.f15pl-sidebar-inner {
  position: sticky !important;
  top: 108px !important;
  max-height: calc(100vh - 136px) !important;
  overflow: auto !important;
  padding: 2px 10px 10px 0 !important;
  scrollbar-width: thin !important;
  scrollbar-color: #d4d6dc transparent !important;
}

.f15pl-sidebar-label {
  margin: 0 0 10px !important;
  padding: 0 8px !important;
  color: #777b84 !important;
  font-family: var(--f15pl-font) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
}

.f15pl-toc {
  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.f15pl-toc-group {
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid transparent !important;
  border-radius: 10px !important;
  background: transparent !important;
}

.f15pl-toc-group.is-open {
  border-color: #edf0f4 !important;
  background: #fafbfc !important;
}

.f15pl-toc-group-toggle {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: flex !important;
  width: 100% !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 9px 10px !important;
  border: 0 !important;
  border-radius: 9px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #2e3138 !important;
  font-family: var(--f15pl-font) !important;
  font-size: 12.5px !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  text-align: left !important;
  text-decoration: none !important;
  text-transform: none !important;
  cursor: pointer !important;
}

.f15pl-toc-group-toggle:hover,
.f15pl-toc-group-toggle:focus,
.f15pl-toc-group-toggle:active {
  background: #f1f3f6 !important;
  color: #171717 !important;
  box-shadow: none !important;
  outline: none !important;
}

.f15pl-toc-chevron {
  flex: 0 0 auto !important;
  width: 7px !important;
  height: 7px !important;
  border-right: 1.5px solid #717680 !important;
  border-bottom: 1.5px solid #717680 !important;
  transform: rotate(45deg) translateY(-2px) !important;
  transition: transform .18s ease !important;
}

.f15pl-toc-group.is-open .f15pl-toc-chevron {
  transform: rotate(225deg) translate(-1px, -1px) !important;
}

.f15pl-toc-group-links {
  display: flex !important;
  flex-direction: column !important;
  gap: 1px !important;
  padding: 0 5px 7px !important;
}

.f15pl-toc-group-links[hidden] {
  display: none !important;
}

.f15pl-toc-link,
.f15pl-toc-link:visited {
  display: block !important;
  margin: 0 !important;
  padding: 6px 8px !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: #666a73 !important;
  box-shadow: none !important;
  font-family: var(--f15pl-font) !important;
  font-size: 12px !important;
  font-weight: 450 !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
  text-transform: none !important;
  transition: background .15s ease, color .15s ease !important;
}

.f15pl-toc-link:hover,
.f15pl-toc-link:focus,
.f15pl-toc-link.is-active {
  background: #eef2ff !important;
  color: #1e3f9d !important;
  text-decoration: none !important;
}

.f15pl-toc-level-2 {
  padding-left: 14px !important;
  font-size: 11.5px !important;
}

.f15pl-main {
  min-width: 0 !important;
  max-width: 850px !important;
}

.f15pl-main h2,
.f15pl-main h3,
.f15pl-main h4,
.f15pl-main h5 {
  scroll-margin-top: 124px !important;
  color: var(--f15pl-ink) !important;
  font-family: var(--f15pl-font) !important;
  font-style: normal !important;
  text-transform: none !important;
}

.f15pl-main h2 {
  margin: 56px 0 14px !important;
  padding: 0 !important;
  font-size: clamp(27px, 2.6vw, 34px) !important;
  font-weight: 650 !important;
  line-height: 1.12 !important;
  letter-spacing: -.026em !important;
}

.f15pl-main h2:first-child {
  margin-top: 0 !important;
}

.f15pl-main h3 {
  margin: 34px 0 10px !important;
  padding: 0 !important;
  font-size: clamp(20px, 2vw, 23px) !important;
  font-weight: 650 !important;
  line-height: 1.2 !important;
  letter-spacing: -.018em !important;
}

.f15pl-main h4 {
  margin: 26px 0 9px !important;
  padding: 0 !important;
  font-size: 17px !important;
  font-weight: 650 !important;
  line-height: 1.3 !important;
  letter-spacing: -.008em !important;
}

.f15pl-main h5 {
  margin: 22px 0 8px !important;
  padding: 0 !important;
  font-size: 15px !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
}

.f15pl-main p,
.f15pl-main li {
  color: #34363b !important;
  font-family: var(--f15pl-font) !important;
  font-size: 14.5px !important;
  font-weight: 400 !important;
  line-height: 1.66 !important;
  letter-spacing: 0 !important;
}

.f15pl-main p {
  margin: 0 0 14px !important;
  padding: 0 !important;
}

.f15pl-main ul,
.f15pl-main ol {
  margin: 0 0 18px !important;
  padding-left: 22px !important;
}

.f15pl-main li {
  margin: 0 !important;
  padding: 0 !important;
}

.f15pl-main li + li {
  margin-top: 3px !important;
}

.f15pl-main strong {
  font-weight: 650 !important;
}

.f15pl-main code:not(pre code) {
  padding: 2px 5px !important;
  border-radius: 5px !important;
  background: #f0f2f5 !important;
  color: #25272c !important;
  font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace !important;
  font-size: .88em !important;
}

.f15pl-main blockquote {
  margin: 18px 0 !important;
  padding: 13px 16px !important;
  border: 0 !important;
  border-left: 3px solid #222 !important;
  border-radius: 0 8px 8px 0 !important;
  background: var(--f15pl-panel) !important;
  box-shadow: none !important;
}

.f15pl-main blockquote p {
  margin: 0 !important;
  color: #2f3238 !important;
}

.f15pl-main hr {
  height: 1px !important;
  margin: 42px 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: var(--f15pl-line) !important;
}

.f15pl-prompt-card {
  margin: 16px 0 26px !important;
  overflow: hidden !important;
  border: 1px solid #292d35 !important;
  border-radius: var(--f15pl-radius) !important;
  background: var(--f15pl-code) !important;
  box-shadow: 0 8px 26px rgba(17, 19, 24, .07) !important;
}

.f15pl-prompt-toolbar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 9px 11px 9px 16px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.1) !important;
  background: #15181e !important;
}

.f15pl-prompt-label {
  color: rgba(255,255,255,.58) !important;
  font-family: var(--f15pl-font) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
}

/* Force button states so inherited global button/Elementor hover styles cannot turn it pink. */
.f15pl-page .f15pl-copy-btn,
.f15pl-page button.f15pl-copy-btn,
.f15pl-page .f15pl-copy-btn:visited {
  appearance: none !important;
  -webkit-appearance: none !important;
  min-width: 0 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 7px 12px !important;
  border: 1px solid var(--f15pl-accent) !important;
  border-radius: 7px !important;
  background: var(--f15pl-accent) !important;
  background-color: var(--f15pl-accent) !important;
  background-image: none !important;
  box-shadow: none !important;
  color: #fff !important;
  font-family: var(--f15pl-font) !important;
  font-size: 11.5px !important;
  font-weight: 650 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  text-transform: none !important;
  cursor: pointer !important;
  transition: background-color .15s ease, border-color .15s ease !important;
  transform: none !important;
}

.f15pl-page .f15pl-copy-btn:hover,
.f15pl-page .f15pl-copy-btn:focus,
.f15pl-page .f15pl-copy-btn:active {
  border-color: var(--f15pl-accent-dark) !important;
  background: var(--f15pl-accent-dark) !important;
  background-color: var(--f15pl-accent-dark) !important;
  background-image: none !important;
  box-shadow: none !important;
  color: #fff !important;
  outline: none !important;
  text-decoration: none !important;
  transform: none !important;
}

.f15pl-page .f15pl-copy-btn.is-copied,
.f15pl-page .f15pl-copy-btn.is-copied:hover {
  border-color: #24573d !important;
  background: #24573d !important;
  background-color: #24573d !important;
  color: #fff !important;
}

.f15pl-prompt-card pre {
  max-width: 100% !important;
  margin: 0 !important;
  padding: 18px 20px !important;
  overflow: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--f15pl-code-ink) !important;
  box-shadow: none !important;
  white-space: pre-wrap !important;
  overflow-wrap: anywhere !important;
}

.f15pl-prompt-card pre code {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--f15pl-code-ink) !important;
  font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.58 !important;
  text-shadow: none !important;
}

.f15pl-muted {
  color: var(--f15pl-muted) !important;
  font-family: var(--f15pl-font) !important;
  font-size: 12.5px !important;
  line-height: 1.5 !important;
}

@media (max-width: 980px) {
  .f15pl-shell {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  .f15pl-sidebar-inner {
    position: static !important;
    max-height: none !important;
    padding: 14px !important;
    border: 1px solid var(--f15pl-line) !important;
    border-radius: 12px !important;
    background: #fafafa !important;
  }

  .f15pl-toc {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .f15pl-main {
    max-width: none !important;
  }
}

@media (max-width: 640px) {
  .f15pl-container {
    width: min(100% - 28px, 1240px) !important;
  }

  .f15pl-hero {
    padding-top: 76px !important;
    padding-bottom: 26px !important;
  }

  .f15pl-page .f15pl-hero h1 {
    font-size: 32px !important;
  }

  .f15pl-lead {
    font-size: 15px !important;
  }

  .f15pl-content-wrap {
    padding-top: 26px !important;
    padding-bottom: 64px !important;
  }

  .f15pl-toc {
    grid-template-columns: 1fr !important;
  }

  .f15pl-main h2 {
    margin-top: 46px !important;
    font-size: 27px !important;
  }

  .f15pl-main h3 {
    margin-top: 30px !important;
    font-size: 20px !important;
  }

  .f15pl-main p,
  .f15pl-main li {
    font-size: 14px !important;
  }

  .f15pl-prompt-card pre {
    padding: 16px !important;
  }

  .f15pl-prompt-card pre code {
    font-size: 11.5px !important;
  }
}
