/* ===========================================================================
   Vortex docs theme — soft light-pink + white, aligned with the landing page.
   Restrained: white surfaces, muted-rose accents, subtle tints. No neon.
   =========================================================================== */

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

/* ---- 2. Brand + surface variables --------------------------------------- */
:root {
    --vtx-pink:        #c43b6e;   /* muted rose primary       */
    --vtx-pink-bright: #d76a93;   /* soft secondary accent    */
    --vtx-pink-deep:   #a02050;   /* deep accent (hover/links)*/
    --vtx-pink-soft:   #f1dde6;   /* hairline borders (light) */
    /* Deep rose -> plum, intentionally low-neon. */
    --vtx-grad: linear-gradient(135deg, #c2185b 0%, #a02050 55%, #8e3b86 100%);
    --vtx-serif: "Fraunces", Georgia, "Times New Roman", serif;
    --vtx-shadow:    0 1px 2px rgba(160, 32, 80, 0.05), 0 4px 14px rgba(160, 32, 80, 0.06);
    --vtx-shadow-lg: 0 2px 6px rgba(160, 32, 80, 0.08), 0 12px 30px rgba(160, 32, 80, 0.10);
}

body,
body:not([data-theme="dark"]) {
    --color-background-primary:   #ffffff;   /* main content surface  */
    --color-background-secondary: #fcf6f9;   /* secondary surface     */
    --color-sidebar-background:   #fbf4f7;   /* barely-tinted sidebar */
    --color-code-background:      #faf4f7;   /* soft code surface     */
    --color-api-background:       #fffbfc;

    --color-brand-primary: var(--vtx-pink-deep);
    --color-brand-content: var(--vtx-pink-deep);
    --color-brand-visited: var(--vtx-pink-deep);

    --font-stack:            "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --font-stack--monospace: "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
}

/* Dark mode: muted rose-tinted dark. */
@media (prefers-color-scheme: dark) {
    body:not([data-theme="light"]) {
        --color-background-primary:   #1b151a;
        --color-background-secondary: #241a20;
        --color-sidebar-background:   #241a20;
        --color-code-background:      #281c23;
        --color-api-background:       #221820;
        --color-brand-primary: var(--vtx-pink-bright);
        --color-brand-content: var(--vtx-pink-bright);
    }
}
body[data-theme="dark"] {
    --color-background-primary:   #1b151a;
    --color-background-secondary: #241a20;
    --color-sidebar-background:   #241a20;
    --color-code-background:      #281c23;
    --color-api-background:       #221820;
    --color-brand-primary: var(--vtx-pink-bright);
    --color-brand-content: var(--vtx-pink-bright);
}

/* ---- 3. Page chrome ----------------------------------------------------- */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* Very faint pink wash — kept subtle so the page reads as white. */
    background-attachment: fixed;
    background-image:
        radial-gradient(1100px 560px at 100% -6%, rgba(196, 59, 110, 0.035), transparent 60%),
        radial-gradient(820px 460px at -8% 0%, rgba(142, 59, 134, 0.03), transparent 55%);
}
article.content,
.content { line-height: 1.62; }

/* ---- 4. Headings -------------------------------------------------------- */
.content h1 {
    font-family: var(--vtx-serif);
    font-weight: 600;
    letter-spacing: -0.015em;
    color: var(--vtx-pink-deep);
    padding-bottom: 0.3rem;
}
.content h2,
.content h3 {
    font-family: var(--vtx-serif);
    font-weight: 600;
    letter-spacing: -0.01em;
    color: #3a2530;
}
.content h2 {
    margin-top: 2.2rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid var(--vtx-pink-soft);
}
.content h1 .headerlink,
.content h2 .headerlink,
.content h3 .headerlink { opacity: 0; transition: opacity 0.15s ease; }
.content h1:hover .headerlink,
.content h2:hover .headerlink,
.content h3:hover .headerlink { opacity: 0.5; }

/* ---- 5. Links ----------------------------------------------------------- */
.content a:not(.headerlink) {
    text-decoration: none;
    border-bottom: 1px solid var(--vtx-pink-soft);
    transition: color 0.15s ease, border-color 0.15s ease;
}
.content a:not(.headerlink):hover {
    color: var(--vtx-pink-deep);
    border-bottom-color: var(--vtx-pink);
}

/* ---- 6. Sidebar / navigation -------------------------------------------- */
.sidebar-brand-text {
    font-family: var(--vtx-serif);
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--vtx-pink-deep);
}
.sidebar-tree .current-page > .reference {
    color: var(--vtx-pink-deep);
    font-weight: 600;
}
.sidebar-tree .reference {
    border-radius: 0.35rem;
    transition: background 0.12s ease, color 0.12s ease;
}
.sidebar-tree .reference:hover { background: rgba(196, 59, 110, 0.07); }
.toc-tree li.scroll-current > .reference {
    color: var(--vtx-pink-deep);
    font-weight: 600;
    border-left: 2px solid var(--vtx-pink);
}

/* ---- 7. Class / method signature cards ---------------------------------- */
dl.py.class > dt.sig {
    font-size: 0.9em;
    padding: 0.45rem 0.7rem 0.45rem 2.6rem;
    text-indent: -1.9rem;
    border-radius: 0.55rem;
    background: linear-gradient(135deg, #ffffff 0%, #fdf3f7 100%);
    border: 1px solid var(--vtx-pink-soft);
    border-left: 3px solid var(--vtx-pink);
    box-shadow: var(--vtx-shadow);
    box-sizing: border-box;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}
dl.py.class > dt.sig .sig-name { font-weight: 700; font-size: 1em; color: var(--vtx-pink-deep); }
dl.py.class > dt.sig .sig-prename { opacity: 0.7; }

dl.py.method > dt.sig,
dl.py.attribute > dt.sig,
dl.py.property > dt.sig {
    font-size: 0.85em;
    border-radius: 0.4rem;
    border-left: 3px solid var(--vtx-pink-soft);
    background: #fffafc;
    box-sizing: border-box;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}
dl.py.method > dt.sig .sig-name { font-weight: 600; }

dl.py.class > dd {
    border-left: 1px solid var(--vtx-pink-soft);
    padding-left: 1rem;
    margin-left: 0.15rem;
}

/* ---- 8. Op field-list blocks (Math / __init__ / __call__ / Note) -------- */
dl.field-list { display: block; margin: 0.7rem 0 0.5rem 0; }
dl.field-list > dt {                       /* region label "pill" */
    display: inline-block;
    font-family: var(--font-stack--monospace);
    font-weight: 600;
    font-size: 0.8em;
    letter-spacing: 0.02em;
    color: #ffffff;
    background: var(--vtx-grad);
    padding: 0.12rem 0.62rem;
    border-radius: 0.5rem;
    margin: 0.7rem 0 0 0;
    box-shadow: 0 2px 6px rgba(160, 32, 80, 0.16);
}
dl.field-list > dt .colon { display: none; }
dl.field-list > dd {                       /* region body card */
    display: block;
    margin: 0.3rem 0 0.15rem 0;
    padding: 0.55rem 0.9rem;
    border: 1px solid var(--vtx-pink-soft);
    border-left: 3px solid var(--vtx-pink);
    background: #ffffff;
    border-radius: 0 0.55rem 0.55rem 0;
    box-shadow: var(--vtx-shadow);
    transition: box-shadow 0.18s ease, transform 0.18s ease;
}
dl.field-list > dd:hover { box-shadow: var(--vtx-shadow-lg); transform: translateX(2px); }
dl.field-list > dd > p { margin: 0; }

/* Subtle two-tone rhythm so adjacent blocks read as separate regions. */
dl.field-list > dt:nth-of-type(even) {
    background: linear-gradient(135deg, #b06ab3 0%, #8e3b86 100%);
}
dl.field-list > dd:nth-of-type(even) {
    border-left-color: var(--vtx-pink-bright);
    background: #fdf8fb;
}

/* ---- 9. Code, admonitions, tables --------------------------------------- */
.highlight {
    border-radius: 0.6rem;
    border: 1px solid var(--vtx-pink-soft);
    box-shadow: var(--vtx-shadow);
    overflow: hidden;
}
code.literal {
    border-radius: 0.3rem;
    padding: 0.05rem 0.32rem;
    border: 1px solid rgba(160, 32, 80, 0.10);
}
.admonition,
div.admonition {
    border-radius: 0.6rem;
    border-left-width: 4px;
    box-shadow: var(--vtx-shadow);
    overflow: hidden;
}
table.docutils {
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: var(--vtx-shadow);
    border: 1px solid var(--vtx-pink-soft);
}
table.docutils thead th {
    background: var(--vtx-grad);
    color: #ffffff;
    font-weight: 600;
}
table.docutils tbody tr:nth-child(even) { background: #fdf6fa; }

/* ---- 10. Display math --------------------------------------------------- */
dl.field-list > dd div.math {
    text-align: left;
    margin: 0.15rem 0;
    overflow-x: auto;
}
