/* ==========================================================================
   Packr Docs theme — editorial "Packr Updates" look layered on the bundled
   Read the Docs theme. Warm off-white canvas, sage/olive accent, serif display
   headings, clean sans body, and a floating white content card.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap');

:root {
  --pk-cream:        #f5f4f0;  /* page canvas */
  --pk-cream-2:      #efeee7;  /* sidebar / subtle fills */
  --pk-card:         #ffffff;  /* content card */
  --pk-ink:          #1a1a1a;  /* headings */
  --pk-body:         #33352f;  /* body text */
  --pk-muted:        #8a8d82;  /* captions, meta */
  --pk-border:       #e5e4dc;  /* hairlines */
  --pk-sage:         #6b7a5a;  /* primary accent */
  --pk-sage-dark:    #54623e;  /* hover / pressed */
  --pk-sage-tint:    #ecefe3;  /* active nav fill, highlights */
  --pk-sage-tint-2:  #dde3cf;  /* hover nav fill */

  --pk-serif: "Fraunces", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --pk-sans:  "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --pk-mono:  "SFMono-Regular", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace;

  --pk-radius: 16px;
  --pk-shadow: 0 1px 2px rgba(26,26,26,.04), 0 12px 32px rgba(26,26,26,.06);
}

/* --------------------------------------------------------------------------
   Base canvas + typography
   -------------------------------------------------------------------------- */
.wy-body-for-nav,
.wy-nav-content-wrap {
  background: var(--pk-cream);
}

body,
.wy-nav-content {
  font-family: var(--pk-sans);
  color: var(--pk-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.rst-content {
  font-size: 17px;
  line-height: 1.72;
}

::selection { background: var(--pk-sage-tint-2); }

/* Headings — big display H1 in serif, section heads in bold sans */
.rst-content h1,
.rst-content h2,
.rst-content h3,
.rst-content h4,
.rst-content h5,
.rst-content h6 {
  color: var(--pk-ink);
  font-family: var(--pk-sans);
  font-weight: 700;
  letter-spacing: -0.01em;
}

.rst-content h1 {
  font-family: var(--pk-serif);
  font-weight: 600;
  font-size: 2.7rem;
  line-height: 1.08;
  letter-spacing: -0.015em;
  margin: 0 0 1.2rem;
}

.rst-content h2 {
  font-size: 1.6rem;
  margin: 2.6rem 0 1rem;
}

.rst-content h3 {
  font-size: 1.22rem;
  margin: 2rem 0 .7rem;
}

.rst-content p,
.rst-content li {
  color: var(--pk-body);
}

/* Links inside content */
.rst-content a,
.rst-content a:visited {
  color: var(--pk-sage);
  text-decoration: none;
  border-bottom: 1px solid var(--pk-sage-tint-2);
  transition: color .12s ease, border-color .12s ease;
}
.rst-content a:hover {
  color: var(--pk-sage-dark);
  border-bottom-color: var(--pk-sage-dark);
}

/* --------------------------------------------------------------------------
   Content card — white, rounded, soft shadow, floating on the cream canvas
   -------------------------------------------------------------------------- */
.wy-nav-content {
  background: var(--pk-card);
  max-width: 820px;
  margin: 2.5rem auto;
  padding: 3rem 3.4rem 3.6rem;
  border: 1px solid var(--pk-border);
  border-radius: var(--pk-radius);
  box-shadow: var(--pk-shadow);
}

@media screen and (max-width: 768px) {
  .wy-nav-content { margin: 0; border-radius: 0; border: none; padding: 1.6rem 1.3rem 2.4rem; }
}

/* --------------------------------------------------------------------------
   Sidebar
   -------------------------------------------------------------------------- */
.wy-nav-side {
  background: var(--pk-cream-2);
  border-right: 1px solid var(--pk-border);
}

/* Search / brand block at top of the sidebar */
.wy-side-nav-search {
  background: var(--pk-cream-2);
  padding: 1.4rem 1rem 1rem;
}
.wy-side-nav-search > a,
.wy-side-nav-search .wy-dropdown > a {
  color: var(--pk-ink);
  font-family: var(--pk-serif);
  font-weight: 600;
  font-size: 1.5rem;
  letter-spacing: -0.01em;
}
.wy-side-nav-search > a:hover { background: transparent; }
.wy-side-nav-search > a img.logo { max-height: 40px; }
.wy-side-nav-search > div.version {
  color: var(--pk-muted);
  font-family: var(--pk-sans);
  font-size: .72rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.wy-side-nav-search input[type="text"] {
  border: 1px solid var(--pk-border);
  border-radius: 10px;
  background: var(--pk-card);
  color: var(--pk-body);
  box-shadow: none;
  font-family: var(--pk-sans);
}
.wy-side-nav-search input[type="text"]:focus {
  border-color: var(--pk-sage);
  box-shadow: 0 0 0 3px var(--pk-sage-tint);
}

/* Section captions ("Core Workflows", "Admin & Settings") */
.wy-menu-vertical p.caption {
  color: var(--pk-muted);
  font-family: var(--pk-sans);
  font-weight: 700;
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 1.4rem 0 .4rem;
  padding: 0 1.25rem;
}

/* Nav links */
.wy-menu-vertical a {
  color: var(--pk-body);
  font-family: var(--pk-sans);
  font-size: .92rem;
  padding: .5rem 1.25rem;
  border-radius: 0;
}
.wy-menu-vertical a:hover {
  background: var(--pk-sage-tint);
  color: var(--pk-sage-dark);
}
.wy-menu-vertical a:hover span.toctree-expand,
.wy-menu-vertical a span.toctree-expand { color: var(--pk-muted); }

/* Active / current page */
.wy-menu-vertical li.current { background: transparent; }
.wy-menu-vertical li.current > a,
.wy-menu-vertical li.current > a:hover,
.wy-menu-vertical li.toctree-l1.current > a {
  background: var(--pk-sage-tint);
  color: var(--pk-sage-dark);
  font-weight: 600;
  border: none;
  border-left: 3px solid var(--pk-sage);
}
.wy-menu-vertical li.current a {
  border-right: none;
  color: var(--pk-body);
}
.wy-menu-vertical li.current a:hover { background: var(--pk-sage-tint-2); }
.wy-menu-vertical li.toctree-l2.current > a,
.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a { background: var(--pk-cream); }

/* --------------------------------------------------------------------------
   Mobile top bar
   -------------------------------------------------------------------------- */
.wy-nav-top {
  background: var(--pk-sage);
  font-family: var(--pk-sans);
}
.wy-nav-top a { color: #fff; }
.wy-nav-top i { color: #fff; }

/* --------------------------------------------------------------------------
   Code, tables, quotes, admonitions
   -------------------------------------------------------------------------- */
.rst-content code,
.rst-content tt,
.rst-content pre,
.rst-content .highlight {
  font-family: var(--pk-mono);
}
.rst-content code.literal,
.rst-content tt.literal {
  background: var(--pk-cream);
  border: 1px solid var(--pk-border);
  border-radius: 6px;
  color: var(--pk-sage-dark);
  padding: .12em .4em;
  font-size: .86em;
}
.rst-content .highlight,
.rst-content pre {
  background: #faf9f5;
  border: 1px solid var(--pk-border);
  border-radius: 12px;
}

.rst-content blockquote {
  border-left: 3px solid var(--pk-sage);
  background: var(--pk-cream);
  color: var(--pk-body);
  border-radius: 0 10px 10px 0;
  margin-left: 0;
  padding: .6rem 1.1rem;
}

.rst-content table.docutils,
.wy-table-responsive table {
  border: 1px solid var(--pk-border);
  border-radius: 10px;
  overflow: hidden;
}
.rst-content table.docutils thead th,
.wy-table-responsive table thead th {
  background: var(--pk-cream-2);
  color: var(--pk-ink);
  border-color: var(--pk-border);
  font-family: var(--pk-sans);
}
.rst-content table.docutils td { border-color: var(--pk-border); }

hr { border-top: 1px solid var(--pk-border); }

/* --------------------------------------------------------------------------
   Admonitions — role flags (info), notes, tips, warnings.
   Themed to the Packr palette: sage for info/note/tip, amber for warning.
   Overrides the bundled Read the Docs admonition chrome.
   -------------------------------------------------------------------------- */
.rst-content .admonition {
  background: var(--pk-cream);
  border: 1px solid var(--pk-border);
  border-left: 4px solid var(--pk-sage);
  border-radius: var(--pk-radius);
  box-shadow: none;
  padding: .9rem 1.2rem;
  margin: 1.5rem 0;
}
.rst-content .admonition > p { color: var(--pk-body); }
.rst-content .admonition > p:last-child { margin-bottom: 0; }
.rst-content .admonition-title {
  font-family: var(--pk-sans);
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .02em;
  color: var(--pk-sage-dark);
  background: transparent;
  margin: 0 0 .4rem;
  padding: 0;
}
.rst-content .admonition-title::before { display: none; } /* drop RTD icon glyph */

.rst-content .admonition.note,
.rst-content .admonition.info,
.rst-content .admonition.tip { border-left-color: var(--pk-sage); }
.rst-content .admonition.note .admonition-title,
.rst-content .admonition.info .admonition-title,
.rst-content .admonition.tip .admonition-title { color: var(--pk-sage-dark); }

.rst-content .admonition.warning {
  background: #fbf3e6;
  border-left-color: #b8862b;
}
.rst-content .admonition.warning .admonition-title { color: #8a6516; }

/* --------------------------------------------------------------------------
   Buttons / prev-next footer navigation
   -------------------------------------------------------------------------- */
.btn,
.btn-neutral {
  font-family: var(--pk-sans);
  border-radius: 10px;
  box-shadow: none;
}
.rst-content .btn-neutral {
  background: var(--pk-card) !important;
  color: var(--pk-sage-dark) !important;
  border: 1px solid var(--pk-border);
}
.rst-content .btn-neutral:hover {
  background: var(--pk-sage-tint) !important;
}
.rst-content .btn .fa { color: inherit; }

.rst-footer-buttons { margin-top: 1.5rem; }

/* Footer */
footer,
.rst-content footer {
  color: var(--pk-muted);
  font-family: var(--pk-sans);
}
footer a { color: var(--pk-sage); }
