/*
 * PostgreSQL Official Documentation Style
 * Adapted for pgdoc-ai (https://pgdoc-ai.pages.dev)
 * Based on postgresql.org documentation design system
 */

/* -------------------------------------------------------------
 * 1. CSS VARIABLES & COLOR PALETTES
 * ------------------------------------------------------------- */

:root,
[data-theme="light"],
html[data-theme="light"] {
  /* Brand colors */
  --pg-blue: #336791;
  --pg-blue-dark: #264d6d;
  --pg-blue-light: #50b0f0;
  --pg-blue-hover: #193145;

  /* Typography & base */
  --body-bg-color: #ffffff;
  --body-fg-color: #212529;
  --b-fg-color: #111827;
  --header-fg-color: #336791;
  --hr-bdr-color: #e5e7eb;
  --h2-decoration-bg-color: #e5e7eb;

  /* Links */
  --a-fg-color: #336791;
  --a-highlight-fg-color: #193145;

  /* Top Header Navbar */
  --navbar-bg-color: #f8f9fa;
  --navbar-border-color: #dee2e6;
  --navbar-fg-color: #212529;
  --badge-bg-color: #e2e8f0;
  --badge-fg-color: #334155;
  --btn-bg-color: #ffffff;
  --btn-border-color: #cbd5e1;
  --btn-hover-bg-color: #f1f5f9;

  /* Code & Syntax */
  --doccontent-pre-code-bg-color: #f8f9fa;
  --doccontent-pre-code-fg-color: #1f2937;
  --pgcontent-pre-bdr-color: #e2e8f0;
  --code-border-color: #e2e8f0;

  /* Tables */
  --doccontent-table-bdr-color: #dee2e6;
  --doccontent-table-bg-color: #ffffff;
  --doccontent-table-fg-color: #336791;
  --doccontent-table-th-bdr-color: #dee2e6;
  --doccontent-table-th-bg-color: #f1f5f9;
  --doccontent-table-th-fg-color: #336791;
  --doccontent-table-td-bdr-color: #dee2e6;
  --doccontent-table-td-bg-color: #ffffff;
  --doccontent-table-td-fg-color: #212529;

  /* Admonition Callouts (Note, Tip, Warning, Caution) */
  --doccontent-callout-fg-color: #212529;
  /* Note: blue */
  --doccontent-blockquote-table-note-bg-color: #eff6ff;
  --doccontent-blockquote-table-note-bdr-color: #93c5fd;
  --doccontent-note-fg-color: #1e40af;
  /* Tip: green */
  --doccontent-blockquote-table-tip-bg-color: #f0fdf4;
  --doccontent-blockquote-table-tip-bdr-color: #86efac;
  --doccontent-tip-fg-color: #166534;
  /* Warning: red */
  --doccontent-blockquote-table-warning-bg-color: #fef2f2;
  --doccontent-blockquote-table-warning-bdr-color: #fca5a5;
  --doccontent-warning-fg-color: #991b1b;
  /* Caution: yellow/amber */
  --doccontent-blockquote-table-caution-bg-color: #fffbeb;
  --doccontent-blockquote-table-caution-bdr-color: #fde68a;
  --doccontent-caution-fg-color: #92400e;
}

/* Dark theme overrides */
[data-theme="dark"],
:root[data-theme="dark"],
html[data-theme="dark"] {
  --body-bg-color: #1a1e24;
  --body-fg-color: #e2e8f0;
  --b-fg-color: #f8fafc;
  --header-fg-color: #699eca;
  --hr-bdr-color: #334155;
  --h2-decoration-bg-color: #334155;

  --a-fg-color: #699eca;
  --a-highlight-fg-color: #93c5fd;

  --navbar-bg-color: #14171c;
  --navbar-border-color: #2d3748;
  --navbar-fg-color: #e2e8f0;
  --badge-bg-color: #2d3748;
  --badge-fg-color: #94a3b8;
  --btn-bg-color: #1e2530;
  --btn-border-color: #475569;
  --btn-hover-bg-color: #2d3748;

  --doccontent-pre-code-bg-color: #14171c;
  --doccontent-pre-code-fg-color: #e2e8f0;
  --pgcontent-pre-bdr-color: #334155;
  --code-border-color: #334155;

  --doccontent-table-bdr-color: #334155;
  --doccontent-table-bg-color: #14171c;
  --doccontent-table-fg-color: #699eca;
  --doccontent-table-th-bdr-color: #334155;
  --doccontent-table-th-bg-color: #1e2530;
  --doccontent-table-th-fg-color: #93c5fd;
  --doccontent-table-td-bdr-color: #334155;
  --doccontent-table-td-bg-color: #1a1e24;
  --doccontent-table-td-fg-color: #cbd5e1;

  --doccontent-callout-fg-color: #e2e8f0;
  --doccontent-blockquote-table-note-bg-color: #172554;
  --doccontent-blockquote-table-note-bdr-color: #1d4ed8;
  --doccontent-note-fg-color: #bfdbfe;

  --doccontent-blockquote-table-tip-bg-color: #14351f;
  --doccontent-blockquote-table-tip-bdr-color: #15803d;
  --doccontent-tip-fg-color: #bbf7d0;

  --doccontent-blockquote-table-warning-bg-color: #451a1a;
  --doccontent-blockquote-table-warning-bdr-color: #b91c1c;
  --doccontent-warning-fg-color: #fecaca;

  --doccontent-blockquote-table-caution-bg-color: #3d2f10;
  --doccontent-blockquote-table-caution-bdr-color: #b45309;
  --doccontent-caution-fg-color: #fef08a;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]),
  html:not([data-theme="light"]) {
    --body-bg-color: #1a1e24;
    --body-fg-color: #e2e8f0;
    --b-fg-color: #f8fafc;
    --header-fg-color: #699eca;
    --hr-bdr-color: #334155;
    --h2-decoration-bg-color: #334155;

    --a-fg-color: #699eca;
    --a-highlight-fg-color: #93c5fd;

    --navbar-bg-color: #14171c;
    --navbar-border-color: #2d3748;
    --navbar-fg-color: #e2e8f0;
    --badge-bg-color: #2d3748;
    --badge-fg-color: #94a3b8;
    --btn-bg-color: #1e2530;
    --btn-border-color: #475569;
    --btn-hover-bg-color: #2d3748;

    --doccontent-pre-code-bg-color: #14171c;
    --doccontent-pre-code-fg-color: #e2e8f0;
    --pgcontent-pre-bdr-color: #334155;
    --code-border-color: #334155;

    --doccontent-table-bdr-color: #334155;
    --doccontent-table-bg-color: #14171c;
    --doccontent-table-fg-color: #699eca;
    --doccontent-table-th-bdr-color: #334155;
    --doccontent-table-th-bg-color: #1e2530;
    --doccontent-table-th-fg-color: #93c5fd;
    --doccontent-table-td-bdr-color: #334155;
    --doccontent-table-td-bg-color: #1a1e24;
    --doccontent-table-td-fg-color: #cbd5e1;

    --doccontent-callout-fg-color: #e2e8f0;
    --doccontent-blockquote-table-note-bg-color: #172554;
    --doccontent-blockquote-table-note-bdr-color: #1d4ed8;
    --doccontent-note-fg-color: #bfdbfe;

    --doccontent-blockquote-table-tip-bg-color: #14351f;
    --doccontent-blockquote-table-tip-bdr-color: #15803d;
    --doccontent-tip-fg-color: #bbf7d0;

    --doccontent-blockquote-table-warning-bg-color: #451a1a;
    --doccontent-blockquote-table-warning-bdr-color: #b91c1c;
    --doccontent-warning-fg-color: #fecaca;

    --doccontent-blockquote-table-caution-bg-color: #3d2f10;
    --doccontent-blockquote-table-caution-bdr-color: #b45309;
    --doccontent-caution-fg-color: #fef08a;
  }
}

/* -------------------------------------------------------------
 * 2. GLOBAL RESET & BASE STYLES
 * ------------------------------------------------------------- */

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body, body#docContent {
  color: var(--body-fg-color);
  background-color: var(--body-bg-color);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: background-color 0.15s ease, color 0.15s ease;
}

/* -------------------------------------------------------------
 * 3. TOP NAVBAR HEADER
 * ------------------------------------------------------------- */

.pg-header {
  width: 100%;
  background-color: var(--navbar-bg-color);
  border-bottom: 1px solid var(--navbar-border-color);
  position: sticky;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.pg-header-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0.6rem 1.25rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.pg-brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.pg-logo-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: var(--header-fg-color);
  font-weight: 700;
  font-size: 1.1rem;
  transition: opacity 0.15s ease;
}

.pg-logo-link:hover {
  text-decoration: none;
  opacity: 0.85;
}

.pg-logo-icon {
  display: block;
  flex-shrink: 0;
}

.pg-logo-icon path {
  fill: var(--header-fg-color);
  transition: fill 0.15s ease;
}

.pg-brand-text {
  letter-spacing: -0.3px;
}

.pg-badge {
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.15rem 0.5rem;
  border-radius: 9999px;
  background-color: var(--badge-bg-color);
  color: var(--badge-fg-color);
}

/* Search Form & Input */
.pg-search-wrap {
  position: relative;
  flex: 1 1 260px;
  max-width: 440px;
  margin: 0 0.5rem;
}

.pg-search-form {
  margin: 0;
  width: 100%;
}

.pg-search-input-group {
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
  background-color: var(--btn-bg-color);
  border: 1px solid var(--btn-border-color);
  border-radius: 6px;
  transition: all 0.15s ease-in-out;
}

.pg-search-input-group:focus-within {
  border-color: var(--a-fg-color);
  box-shadow: 0 0 0 3px rgba(51, 103, 145, 0.18);
}

[data-theme="dark"] .pg-search-input-group:focus-within {
  box-shadow: 0 0 0 3px rgba(105, 158, 202, 0.22);
}

.pg-search-icon {
  position: absolute;
  left: 10px;
  color: var(--badge-fg-color);
  pointer-events: none;
}

.pg-search-input {
  width: 100%;
  padding: 0.38rem 2.2rem 0.38rem 2rem;
  font-size: 0.86rem;
  line-height: 1.4;
  color: var(--body-fg-color);
  background-color: transparent;
  border: none;
  outline: none;
  font-family: inherit;
}

.pg-search-input::placeholder {
  color: var(--badge-fg-color);
  opacity: 0.75;
}

.pg-search-kbd {
  position: absolute;
  right: 36px;
  padding: 1px 5px;
  font-size: 0.7rem;
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  color: var(--badge-fg-color);
  background-color: var(--badge-bg-color);
  border: 1px solid var(--btn-border-color);
  border-radius: 4px;
  pointer-events: none;
}

.pg-search-btn {
  background: transparent;
  border: none;
  border-left: 1px solid var(--btn-border-color);
  padding: 0 0.55rem;
  height: 28px;
  cursor: pointer;
  color: var(--badge-fg-color);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.15s ease;
}

.pg-search-btn:hover {
  color: var(--a-fg-color);
}

/* Search Dropdown */
.pg-search-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  max-height: 380px;
  overflow-y: auto;
  background-color: var(--navbar-bg-color);
  border: 1px solid var(--navbar-border-color);
  border-radius: 8px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.18);
  z-index: 200;
  padding: 0.35rem 0;
  overscroll-behavior: contain;
}

.pg-search-item {
  padding: 0.55rem 0.85rem;
  cursor: pointer;
  display: block;
  text-decoration: none;
  color: var(--body-fg-color);
  transition: background-color 0.1s ease;
  border-bottom: 1px solid var(--hr-bdr-color);
}

.pg-search-item:last-child {
  border-bottom: none;
}

.pg-search-item:hover,
.pg-search-item.is-selected {
  background-color: var(--btn-hover-bg-color);
  text-decoration: none;
}

.pg-search-item-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
}

.pg-search-item-title {
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--header-fg-color);
}

.pg-search-item mark {
  background-color: rgba(254, 240, 138, 0.5);
  color: inherit;
  font-weight: 700;
  border-radius: 2px;
  padding: 0 2px;
}

[data-theme="dark"] .pg-search-item mark {
  background-color: rgba(245, 158, 11, 0.35);
  color: #fef08a;
}

.pg-search-item-badge {
  font-size: 0.7rem;
  padding: 1px 6px;
  border-radius: 4px;
  background-color: var(--badge-bg-color);
  color: var(--badge-fg-color);
  white-space: nowrap;
}

.pg-search-item-desc {
  font-size: 0.78rem;
  color: var(--badge-fg-color);
  margin-top: 0.2rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pg-search-footer {
  padding: 0.5rem 0.85rem;
  font-size: 0.8rem;
  text-align: center;
  background-color: var(--navbar-bg-color);
  border-top: 1px solid var(--navbar-border-color);
}

.pg-search-footer a {
  color: var(--a-fg-color);
  font-weight: 600;
  text-decoration: none;
}

.pg-search-footer a:hover {
  text-decoration: underline;
}

.pg-search-no-results {
  padding: 1rem 0.85rem;
  font-size: 0.85rem;
  text-align: center;
  color: var(--badge-fg-color);
}

.pg-header-actions {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.pg-nav-link {
  font-size: 0.84rem;
  font-weight: 600;
  padding: 0.35rem 0.75rem;
  border-radius: 6px;
  text-decoration: none;
  color: var(--a-fg-color);
  background-color: var(--btn-bg-color);
  border: 1px solid var(--btn-border-color);
  transition: all 0.15s ease;
  white-space: nowrap;
}

.pg-nav-link:hover {
  background-color: var(--btn-hover-bg-color);
  color: var(--a-highlight-fg-color);
  text-decoration: none;
  border-color: var(--a-fg-color);
}

.pg-theme-btn {
  background-color: var(--btn-bg-color);
  border: 1px solid var(--btn-border-color);
  border-radius: 6px;
  padding: 0.3rem 0.55rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  line-height: 1;
  transition: all 0.15s ease;
}

.pg-theme-btn:hover {
  background-color: var(--btn-hover-bg-color);
  border-color: var(--a-fg-color);
}

/* Theme Icon Visibility */
html[data-theme="dark"] .theme-icon-dark { display: none !important; }
html[data-theme="dark"] .theme-icon-light { display: inline-block !important; }
html[data-theme="light"] .theme-icon-light { display: none !important; }
html[data-theme="light"] .theme-icon-dark { display: inline-block !important; }
html:not([data-theme="dark"]):not([data-theme="light"]) .theme-icon-light { display: none !important; }
html:not([data-theme="dark"]):not([data-theme="light"]) .theme-icon-dark { display: inline-block !important; }

@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) .theme-icon-dark { display: none !important; }
  html:not([data-theme="light"]) .theme-icon-light { display: inline-block !important; }
}

/* -------------------------------------------------------------
 * 4. CONTENT WRAPPER & WIDTH CONSTRAINTS
 * ------------------------------------------------------------- */

.navheader,
.navfooter,
.book,
.preface,
.part,
.chapter,
.sect1,
.sect2,
.sect3,
.refentry,
.reference,
.appendix,
.bibliography,
.index,
.legalnotice {
  width: 100%;
  max-width: 1200px;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  box-sizing: border-box;
}

/* -------------------------------------------------------------
 * 5. TYPOGRAPHY & HEADINGS
 * ------------------------------------------------------------- */

h1, h2, h3, h4, h5, h6 {
  font-family: inherit;
  font-weight: 600;
  color: var(--header-fg-color);
  line-height: 1.35;
}

h1 {
  font-size: 1.85rem;
  margin-top: 1.6rem;
  margin-bottom: 0.8rem;
}

h2 {
  font-size: 1.45rem;
  margin-top: 1.8rem;
  margin-bottom: 0.8rem;
}

.sect1 > div.titlepage h2,
.chapter > div.titlepage h2,
.preface > div.titlepage h2,
.appendix > div.titlepage h2,
.refentry > div.refnamediv h2 {
  border-bottom: 2px solid var(--h2-decoration-bg-color);
  padding-bottom: 0.35rem;
  color: var(--header-fg-color);
}

.titlepage h2.title,
.refnamediv h2 {
  color: var(--header-fg-color);
}

h3 {
  font-size: 1.22rem;
  margin-top: 1.4rem;
  margin-bottom: 0.6rem;
}

h4 {
  font-size: 1.05rem;
  margin-top: 1.2rem;
  margin-bottom: 0.5rem;
}

h5 {
  font-size: 0.95rem;
  margin-top: 1rem;
  margin-bottom: 0.4rem;
}

h6 {
  font-size: 0.88rem;
  margin-top: 0.8rem;
  margin-bottom: 0.4rem;
}

p {
  margin-top: 0;
  margin-bottom: 0.9rem;
}

b, strong, th {
  font-weight: 600;
  color: var(--b-fg-color);
}

/* Book title centering */
.book > .titlepage h1.title,
.book > .titlepage .corpauthor,
.book > .titlepage .copyright {
  text-align: center;
}

.book > .titlepage {
  text-align: center;
  margin-bottom: 2rem;
}

/* -------------------------------------------------------------
 * 6. LINKS & ANCHOR PERMALINKS
 * ------------------------------------------------------------- */

a {
  color: var(--a-fg-color);
  font-weight: 500;
  text-decoration: none;
  transition: color 0.15s ease-in-out;
}

a:hover, a:active {
  color: var(--a-highlight-fg-color);
  text-decoration: underline;
}

a:visited {
  color: var(--a-fg-color);
}

/* Permalinks to headings */
a.id_link {
  color: inherit;
  opacity: 0;
  text-decoration: none;
  margin-left: 0.35rem;
  font-weight: normal;
  transition: opacity 0.15s ease-in-out;
}

*:hover > a.id_link {
  opacity: 0.5;
}

a.id_link:hover {
  opacity: 1;
  color: var(--a-fg-color);
  text-decoration: none;
}

/* -------------------------------------------------------------
 * 7. CODE & PREFORMATTED BLOCKS
 * ------------------------------------------------------------- */

pre,
pre.programlisting,
pre.screen,
pre.synopsis,
pre.literallayout {
  background-color: var(--doccontent-pre-code-bg-color);
  color: var(--doccontent-pre-code-fg-color);
  border: 1px solid var(--pgcontent-pre-bdr-color);
  border-radius: 6px;
  padding: 0.85rem 1.1rem;
  margin: 1rem 0;
  overflow-x: auto;
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 0.88rem;
  line-height: 1.55;
  tab-size: 4;
}

code,
kbd,
tt.literal,
tt.replaceable,
tt {
  background-color: var(--doccontent-pre-code-bg-color);
  color: var(--doccontent-pre-code-fg-color);
  border: 1px solid var(--code-border-color);
  border-radius: 4px;
  padding: 0.12rem 0.38rem;
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 0.88em;
  font-weight: 400;
  word-break: break-word;
}

/* Code nested in pre should not have double styling */
pre code,
.screen code,
.programlisting code {
  background-color: transparent !important;
  color: inherit !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  font-size: inherit !important;
}

.userinput, .userinput > code {
  font-weight: 600;
}

.replaceable, tt.replaceable, em.replaceable {
  font-weight: 600;
  font-style: italic;
}

/* -------------------------------------------------------------
 * 8. TABLES
 * ------------------------------------------------------------- */

div.table,
div.informaltable {
  margin: 1.6rem 0;
  overflow-x: auto;
}

div.table p.title,
div.informaltable p.title {
  font-weight: 600;
  color: var(--header-fg-color);
  margin-bottom: 0.5rem;
}

table.table,
table.informaltable,
table.CALSTABLE {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  border: 2px solid var(--doccontent-table-bdr-color);
  background-color: var(--doccontent-table-bg-color);
  font-size: 0.92rem;
  margin: 0.4rem 0 1rem 0;
}

table.table th,
table.informaltable th,
table.CALSTABLE th {
  background-color: var(--doccontent-table-th-bg-color);
  color: var(--doccontent-table-th-fg-color);
  border: 1px solid var(--doccontent-table-th-bdr-color);
  padding: 0.55rem 0.75rem;
  font-weight: 600;
  text-align: left;
  vertical-align: bottom;
}

table.table td,
table.informaltable td,
table.CALSTABLE td {
  background-color: var(--doccontent-table-td-bg-color);
  color: var(--doccontent-table-td-fg-color);
  border: 1px solid var(--doccontent-table-td-bdr-color);
  padding: 0.5rem 0.75rem;
  vertical-align: top;
}

/* Code in tables */
table.table code,
table.table tt,
table.informaltable code,
table.informaltable tt,
table.CALSTABLE code,
table.CALSTABLE tt {
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  font-size: inherit !important;
  word-break: normal;
}

/* Formatting for catalog/view columns and functions tables */
th.func_table_entry p,
td.func_table_entry p,
th.catalog_table_entry p,
td.catalog_table_entry p {
  margin: 0.15rem 0;
  padding-left: 3.5rem;
  text-align: left;
}

p.func_signature,
p.column_definition {
  text-indent: -3.5rem;
  font-weight: 600;
  color: var(--header-fg-color);
}

p.column_definition code.type {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  font-weight: normal;
}

td.func_table_entry pre.programlisting,
td.catalog_table_entry pre.programlisting {
  background: transparent !important;
  border: none !important;
  padding: 0 0 0 3.5rem !important;
  margin: 0.15rem 0 !important;
  font-size: 0.88rem !important;
}

/* Simplelist */
table.simplelist td {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  border: none;
  background: transparent;
}

/* -------------------------------------------------------------
 * 9. ADMONITIONS & CALLOUTS (Note, Tip, Warning, Caution)
 * ------------------------------------------------------------- */

div.note,
div.tip,
div.warning,
div.caution,
div.important,
blockquote.NOTE,
blockquote.TIP,
blockquote.WARNING,
blockquote.CAUTION {
  border-width: 1px;
  border-style: solid;
  border-radius: 8px;
  padding: 1rem 1.25rem;
  margin: 1.6rem auto;
  max-width: 52rem;
  box-sizing: border-box;
}

div.note p:last-child,
div.tip p:last-child,
div.warning p:last-child,
div.caution p:last-child,
div.important p:last-child {
  margin-bottom: 0 !important;
}

div.note h3,
div.tip h3,
div.warning h3,
div.caution h3,
div.important h3 {
  text-align: center;
  margin: 0.2rem 0 0.6rem 0;
  font-size: 1.05rem;
  font-weight: 700;
}

div.note code,
div.tip code,
div.warning code,
div.caution code {
  background-color: transparent !important;
  border: none !important;
}

/* Note: Blue */
div.note, blockquote.NOTE {
  background-color: var(--doccontent-blockquote-table-note-bg-color);
  border-color: var(--doccontent-blockquote-table-note-bdr-color);
  color: var(--doccontent-note-fg-color);
}
div.note h3, blockquote.NOTE h3 {
  color: var(--doccontent-note-fg-color);
}

/* Tip: Green */
div.tip, blockquote.TIP {
  background-color: var(--doccontent-blockquote-table-tip-bg-color);
  border-color: var(--doccontent-blockquote-table-tip-bdr-color);
  color: var(--doccontent-tip-fg-color);
}
div.tip h3, blockquote.TIP h3 {
  color: var(--doccontent-tip-fg-color);
}

/* Warning: Red */
div.warning, blockquote.WARNING, div.important {
  background-color: var(--doccontent-blockquote-table-warning-bg-color);
  border-color: var(--doccontent-blockquote-table-warning-bdr-color);
  color: var(--doccontent-warning-fg-color);
}
div.warning h3, blockquote.WARNING h3, div.important h3 {
  color: var(--doccontent-warning-fg-color);
}

/* Caution: Amber/Yellow */
div.caution, blockquote.CAUTION {
  background-color: var(--doccontent-blockquote-table-caution-bg-color);
  border-color: var(--doccontent-blockquote-table-caution-bdr-color);
  color: var(--doccontent-caution-fg-color);
}
div.caution h3, blockquote.CAUTION h3 {
  color: var(--doccontent-caution-fg-color);
}

/* -------------------------------------------------------------
 * 10. TABLE OF CONTENTS (TOC)
 * ------------------------------------------------------------- */

div.toc {
  margin: 1.6rem 0;
  padding: 1.25rem 1.5rem;
  background-color: var(--doccontent-pre-code-bg-color);
  border: 1px solid var(--pgcontent-pre-bdr-color);
  border-radius: 6px;
}

div.toc > p {
  font-weight: 700;
  color: var(--header-fg-color);
  margin-top: 0;
  margin-bottom: 0.8rem;
  border-bottom: 1px solid var(--hr-bdr-color);
  padding-bottom: 0.4rem;
  font-size: 1.08rem;
}

div.toc dl {
  margin: 0;
  padding: 0;
}

div.toc dt {
  font-weight: 500;
  margin-top: 0.35rem;
  margin-bottom: 0.2rem;
}

div.toc dd {
  margin-left: 1.75rem;
  margin-bottom: 0.5rem;
}

div.toc span.part,
div.toc span.chapter,
div.toc span.preface,
div.toc span.appendix {
  font-weight: 600;
}

div.toc span.refpurpose {
  font-weight: normal;
  color: var(--body-fg-color);
  opacity: 0.85;
}

div.toc code,
div.toc tt {
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
}

/* -------------------------------------------------------------
 * 11. NAVIGATION (Header & Footer)
 * ------------------------------------------------------------- */

.navheader,
.navfooter {
  margin: 0.8rem 0;
  font-size: 0.9rem;
}

.navheader table,
.navfooter table {
  width: 100%;
  border: none;
  border-collapse: collapse;
}

.navheader th,
.navfooter th {
  text-align: center;
  color: var(--header-fg-color);
  font-weight: 600;
  font-size: 0.95rem;
  border: none;
  background: transparent;
}

.navheader td,
.navfooter td {
  padding: 0.35rem 0.5rem;
  border: none;
  background: transparent;
}

.navheader hr,
.navfooter hr {
  border: 0;
  border-top: 1px solid var(--hr-bdr-color);
  margin: 0.5rem 0;
}

/* -------------------------------------------------------------
 * 12. LISTS & VARIABLE LISTS
 * ------------------------------------------------------------- */

ul.itemizedlist,
ol.orderedlist {
  margin: 0.75rem 0 0.75rem 2rem;
  padding: 0;
}

li {
  margin-bottom: 0.35rem;
}

.variablelist dt {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-weight: 600;
  margin-top: 0.85rem;
  color: var(--header-fg-color);
}

.variablelist dd {
  margin-left: 1.5rem;
  margin-top: 0.25rem;
  margin-bottom: 0.85rem;
}

/* -------------------------------------------------------------
 * 13. FORMAL EXAMPLES & MISCELLANEOUS
 * ------------------------------------------------------------- */

div.example {
  padding-left: 1rem;
  border-left: 3px solid var(--header-fg-color);
  margin: 1.25rem 0;
}

div.example p.title {
  font-weight: 600;
  color: var(--header-fg-color);
  margin-bottom: 0.5rem;
}

.comment {
  color: #dc2626;
}

var {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-style: italic;
}

acronym {
  font-style: inherit;
}

.option {
  white-space: nowrap;
}

/* Media objects (images) */
@media (min-width: 800px) {
  .mediaobject {
    width: 75%;
    margin: 1.5rem auto;
  }
}

.mediaobject img,
.mediaobject svg {
  max-width: 100%;
  height: auto;
}

/* Index div quicklinks */
.indexdiv-quicklinks {
  text-align: center;
  font-size: 0.95rem;
  margin: 1rem 0 1.5rem 0;
  word-spacing: 0.4rem;
}

.indexdiv h3 {
  border-bottom: 2px solid var(--h2-decoration-bg-color);
  padding-bottom: 0.3rem;
  margin-top: 1.8rem;
}

/* -------------------------------------------------------------
 * 14. MOBILE RESPONSIVENESS
 * ------------------------------------------------------------- */

@media (max-width: 768px) {
  html {
    font-size: 15px;
  }

  .pg-header-inner {
    padding: 0.5rem 0.8rem;
    gap: 0.5rem;
  }

  .pg-header-actions {
    gap: 0.4rem;
  }

  .pg-search-wrap {
    order: 3;
    flex: 1 1 100%;
    max-width: 100%;
    margin: 0.35rem 0 0 0;
  }

  .pg-nav-link {
    font-size: 0.78rem;
    padding: 0.25rem 0.55rem;
  }

  .navheader,
  .navfooter,
  .book,
  .preface,
  .part,
  .chapter,
  .sect1,
  .sect2,
  .sect3,
  .refentry,
  .reference,
  .appendix,
  .bibliography,
  .index,
  .legalnotice {
    padding-left: 0.8rem;
    padding-right: 0.8rem;
  }

  .navheader table th,
  .navfooter table th {
    font-size: 0.88rem;
  }

  table.table,
  table.informaltable,
  table.CALSTABLE {
    font-size: 0.82rem;
  }

  th.func_table_entry p,
  td.func_table_entry p,
  th.catalog_table_entry p,
  td.catalog_table_entry p {
    padding-left: 2rem;
  }

  p.func_signature,
  p.column_definition {
    text-indent: -2rem;
  }

  td.func_table_entry pre.programlisting,
  td.catalog_table_entry pre.programlisting {
    padding-left: 2rem !important;
  }
}

/* version selector in the top header */
.pg-version-select {
  margin-right: 10px;
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid rgba(128, 128, 128, 0.45);
  background: transparent;
  color: inherit;
  font-size: 13px;
  cursor: pointer;
}

.pg-version-select:hover {
  border-color: rgba(128, 128, 128, 0.8);
}
