/* spaCR docs — Furo overrides.
 *
 * Font stack unified with the desktop app: Open Sans Light for
 * body copy, Regular for hover / links, SemiBold for headings.
 * Same TTFs the Qt app bundles at spacr/resources/font/open_sans/.
 */

/* ---------- Bundled Open Sans (self-hosted, no CDN) ---------- */
@font-face {
    font-family: "Open Sans";
    font-style:  normal;
    font-weight: 300;
    src: url("fonts/OpenSans-Light.ttf") format("truetype");
    font-display: swap;
}
@font-face {
    font-family: "Open Sans";
    font-style:  normal;
    font-weight: 400;
    src: url("fonts/OpenSans-Regular.ttf") format("truetype");
    font-display: swap;
}
@font-face {
    font-family: "Open Sans";
    font-style:  normal;
    font-weight: 600;
    src: url("fonts/OpenSans-SemiBold.ttf") format("truetype");
    font-display: swap;
}

/* ---------- Furo font-stack override ------------------------- */
:root {
    --font-stack: "Open Sans", ui-sans-serif, system-ui,
                  -apple-system, "Segoe UI", "Helvetica Neue", sans-serif;
    --font-stack--monospace: "JetBrains Mono", ui-monospace,
                              SFMono-Regular, Menlo, Consolas, monospace;
}

/* Body defaults to Light (300) — matches app subtitle weight. */
body {
    font-family: var(--font-stack);
    font-weight: 300;
    letter-spacing: -0.005em;
}

/* Nav / sidebar sits in Regular so it reads clearly at small sizes. */
.sidebar-brand,
.sidebar-tree,
.sidebar-search,
.related,
nav.contents,
.toc-tree {
    font-family: var(--font-stack);
    font-weight: 400;
}

/* Headings — SemiBold with tighter tracking. */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-stack);
    font-weight: 600;
    letter-spacing: -0.02em;
}

/* Article body — Light for calm reading. */
article p,
article li,
article dd {
    font-weight: 300;
}

/* Bold inside body copy stays visible via Regular, not the default
 * heavy 700 (which reads as too loud against Light body). */
article p strong,
article li strong,
article dd strong {
    font-weight: 600;
}


/* ---------- API-page niceties (unchanged from prior pass) --- */
article p { margin: 0.6em 0; }

article > section > h1 {
    font-size: 2.2em;
    letter-spacing: -0.02em;
}

.py.class dl,
.py.function dl,
.py.method dl,
.py.data dl {
    padding: 0.6em 1em;
    border-radius: 6px;
    background: var(--color-background-hover);
    margin-bottom: 1.4em;
}

.py.class dt.sig,
.py.function dt.sig,
.py.method dt.sig {
    font-family: var(--font-stack--monospace);
    font-size: 1.02em;
    font-weight: 400;
    word-break: break-word;
}

.field-list dt {
    font-weight: 600;
    color: var(--color-foreground-primary);
    margin-top: 0.2em;
}
.field-list dd {
    color: var(--color-foreground-secondary);
    font-weight: 300;
}
.field-list dd p strong { color: var(--color-brand-primary); }

div.highlight { border-radius: 6px; }
div.highlight pre {
    padding: 0.9em 1em;
    font-family: var(--font-stack--monospace);
}

/* API translations are loaded on demand from symbol-keyed external files. */
.spacr-api-language {
  align-items: center;
  display: flex;
  font-size: 0.875rem;
  gap: 0.55rem;
  justify-content: flex-end;
  margin: 0 0 1rem;
}

.spacr-api-language select {
  background: var(--color-background-primary);
  border: 1px solid var(--color-background-border);
  border-radius: 0.35rem;
  color: var(--color-foreground-primary);
  padding: 0.3rem 0.45rem;
}

.spacr-api-translation {
  background: var(--color-admonition-background);
  border-inline-start: 3px solid var(--color-brand-primary);
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
}

.spacr-api-translation__label {
  color: var(--color-brand-content);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.035em;
  margin-bottom: 0.4rem;
  text-transform: uppercase;
}
