@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Inter:wght@300;400;600;700;900&family=JetBrains+Mono:wght@400;600&display=swap');

/* ── Shared tokens ──────────────────────────────────────────────────────── */

:root {
    --acron-purple:       #6b2bff;
    --acron-purple-light: #b69aff;
    --acron-purple-dim:   #2d1473;
    --acron-bloom:        #dcc9ff;
    --acron-grad:         linear-gradient(135deg, #6b2bff 0%, #b69aff 100%);
}

/* ── Light mode tokens ──────────────────────────────────────────────────── */

:root,
[data-theme="light"] {
    --acron-bg:       #ffffff;
    --acron-bg-card:  #f4ecff;
    --acron-bg-card2: #ece0ff;
    --acron-border:   rgba(107,43,255,.2);
    --acron-text:     #0a0612;
    --acron-muted:    #8e84a6;
    --acron-bloom:    #dcc9ff;
    --acron-shadow:   rgba(21,10,69,.15);
}

/* ── Dark mode tokens ───────────────────────────────────────────────────── */

[data-theme="dark"] {
    --acron-bg:       #0a0612;
    --acron-bg-card:  #100920;
    --acron-bg-card2: #160d2e;
    --acron-border:   rgba(220,201,255,.25);
    --acron-text:     #f0eaff;
    --acron-muted:    #8e84a6;
    --acron-bloom:    #2d1473;
    --acron-shadow:   rgba(21,10,69,.5);
}

/* ── Furo light variables ───────────────────────────────────────────────── */

[data-theme="light"] {
    --color-background-primary:       #ffffff;
    --color-background-secondary:     #f4ecff;
    --color-foreground-primary:       #0a0612;
    --color-foreground-secondary:     #4a4060;
    --color-foreground-muted:         #8e84a6;
    --color-foreground-border:        rgba(107,43,255,.2);
    --color-brand-primary:            #6b2bff;
    --color-brand-content:            #6b2bff;
    --color-sidebar-background:       #f4ecff;
    --color-sidebar-background-border: rgba(107,43,255,.15);
    --color-sidebar-link-text:        #4a4060;
    --color-sidebar-link-text--top-level: #0a0612;
    --color-sidebar-item-background--hover: transparent;
    --color-sidebar-item-background--current: transparent;
    --color-toc-item-text:            #6b5f80;
    --color-toc-item-text--active:    #6b2bff;
    --color-link:                     #6b2bff;
    --color-link--hover:              #5020cc;
    --color-inline-code-background:   #ece0ff;
    --color-highlight-on-target:      rgba(107,43,255,.1);
}

/* ── Furo dark variables ────────────────────────────────────────────────── */

[data-theme="dark"] {
    --color-background-primary:       #0a0612;
    --color-background-secondary:     #100920;
    --color-background-hover:         #160d2e;
    --color-background-hover--transparent: rgba(107,43,255,.08);
    --color-foreground-primary:       #f0eaff;
    --color-foreground-secondary:     #9ca3af;
    --color-foreground-muted:         #8e84a6;
    --color-foreground-border:        rgba(220,201,255,.25);
    --color-brand-primary:            #b69aff;
    --color-brand-content:            #b69aff;
    --color-sidebar-background:       #100920;
    --color-sidebar-background-border: rgba(220,201,255,.25);
    --color-sidebar-link-text:        #9ca3af;
    --color-sidebar-link-text--top-level: #f0eaff;
    --color-sidebar-item-background--hover: transparent;
    --color-sidebar-item-background--current: transparent;
    --color-sidebar-item-expander-background--hover: transparent;
    --color-toc-item-text:            #9ca3af;
    --color-toc-item-text--active:    #b69aff;
    --color-header-background:        rgba(10,6,18,.88);
    --color-header-border:            rgba(220,201,255,.25);
    --color-link:                     #9d87e0;
    --color-link--hover:              #b8a8f0;
    --color-inline-code-background:   #160d2e;
    --color-highlight-on-target:      rgba(107,43,255,.15);
}

/* ── Base ───────────────────────────────────────────────────────────────── */

body {
    font-family: 'Inter', system-ui, sans-serif !important;
}

/* ── Links ──────────────────────────────────────────────────────────────── */

[data-theme="light"] a {
    text-decoration-color: rgba(107,43,255,.3) !important;
    text-underline-offset: 2px;
}

[data-theme="light"] a:hover {
    text-decoration-color: rgba(107,43,255,.6) !important;
}

[data-theme="dark"] a {
    color: #9d87e0;
    text-decoration-color: rgba(157,135,224,.3) !important;
    text-underline-offset: 2px;
    transition: color .15s, text-decoration-color .15s;
}

[data-theme="dark"] a:hover {
    color: #b8a8f0;
    text-decoration-color: rgba(184,168,240,.55) !important;
}

/* ── Starfield (dark only) ──────────────────────────────────────────────── */

#acron-starfield {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}

[data-theme="light"] #acron-starfield {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    #acron-starfield { display: none; }
}

/* ── Grid overlay (dark only) ───────────────────────────────────────────── */

[data-theme="dark"] .page-content::before,
[data-theme="dark"] article.bd-article::before,
[data-theme="dark"] div[role="main"]::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image:
        linear-gradient(rgba(107,43,255,.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(107,43,255,.03) 1px, transparent 1px);
    background-size: 60px 60px;
    pointer-events: none;
    z-index: 0;
    mask-image: radial-gradient(ellipse 80% 80% at 50% 20%, black 20%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 20%, black 20%, transparent 80%);
}

/* ── Sidebar ────────────────────────────────────────────────────────────── */

.sidebar-drawer {
    background: var(--acron-bg-card) !important;
    border-right: 1px solid var(--acron-border) !important;
}

.sidebar-brand {
    border-bottom: 1px solid var(--acron-border) !important;
    padding: 1.25rem 1rem !important;
}

.sidebar-brand .sidebar-brand-image {
    max-width: 140px;
}

.sidebar-search-container input {
    background: var(--acron-bg-card2) !important;
    border: 1px solid var(--acron-border) !important;
    border-radius: 2px !important;
    color: var(--acron-text) !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.04em !important;
}

.sidebar-search-container input:focus {
    border-color: var(--acron-purple-light) !important;
    box-shadow: 0 0 0 2px rgba(107,43,255,.2) !important;
    outline: none !important;
}

/* ── Nav tree — Unreal style ────────────────────────────────────────────── */

/* Reset Furo's background-highlight approach entirely */
.sidebar-tree .toctree-l1 > a,
.sidebar-tree .toctree-l2 > a,
.sidebar-tree .toctree-l3 > a,
.sidebar-tree .toctree-l4 > a {
    background: none !important;
    border-radius: 0 !important;
    border-left: 3px solid transparent;
    display: flex;
    align-items: center;
    padding: 0 0.75rem 0 calc(0.75rem - 3px) !important;
    height: 32px;
    font-size: 0.8rem !important;
    color: var(--acron-muted) !important;
    text-decoration: none !important;
    transition: color .15s, border-color .15s, background .15s;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Indentation per level */
.sidebar-tree .toctree-l1 > a { padding-left: calc(0.75rem - 3px) !important; }
.sidebar-tree .toctree-l2 > a { padding-left: calc(1.5rem  - 3px) !important; }
.sidebar-tree .toctree-l3 > a { padding-left: calc(2.25rem - 3px) !important; }
.sidebar-tree .toctree-l4 > a { padding-left: calc(3rem    - 3px) !important; }

/* Top-level labels: uppercase mono */
.sidebar-tree .toctree-l1 > a {
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    color: var(--acron-text) !important;
    opacity: 0.6;
}

/* Hover: brighten text, faint bg tint */
.sidebar-tree a:hover {
    background: rgba(107,43,255,.06) !important;
    color: var(--acron-text) !important;
    border-left-color: rgba(182,154,255,.3) !important;
    opacity: 1 !important;
}

/* Active/current: left accent bar, full white, no bg */
.sidebar-tree .current > a {
    background: rgba(107,43,255,.1) !important;
    border-left-color: var(--acron-purple-light) !important;
    color: #ffffff !important;
    opacity: 1 !important;
    font-weight: 600 !important;
}

/* Top-level current: slightly stronger */
.sidebar-tree .toctree-l1.current > a {
    opacity: 1 !important;
}

/* ── Chevron expand toggle ───────────────────────────────────────────────── */

/* Hide Furo's SVG arrow entirely */
.sidebar-tree .icon svg {
    display: none !important;
}

/* Replace with CSS chevron via pseudo-element on the label */
.sidebar-tree label {
    position: absolute !important;
    right: 0.5rem !important;
    top: 0 !important;
    height: 32px !important;
    width: 28px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    color: var(--acron-muted) !important;
    background: none !important;
    padding: 0 !important;
    margin: 0 !important;
    transition: color .15s !important;
}

.sidebar-tree label::after {
    content: '›';
    font-size: 1rem;
    line-height: 1;
    display: block;
    transition: transform .2s ease, color .15s;
    transform: rotate(0deg);
}

/* Rotated when expanded */
.sidebar-tree .toctree-checkbox:checked ~ label::after {
    transform: rotate(90deg);
    color: var(--acron-purple-light);
}

.sidebar-tree label:hover { color: var(--acron-text) !important; }

/* Make li position relative so label can be absolute inside it */
.sidebar-tree li {
    position: relative;
}

/* Ensure the link doesn't overlap the chevron */
.sidebar-tree li.has-children > a {
    padding-right: 2rem !important;
}

/* Hide Furo's default checkbox styling */
.sidebar-tree .toctree-checkbox {
    display: none !important;
}

/* ── Variation / version selector ──────────────────────────────────────── */

.sidebar-variation-selector {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px 8px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--acron-border);
    margin-bottom: 0.5rem;
}

.sidebar-version {
    color: var(--acron-muted);
}

.sidebar-curr-variation {
    font-weight: 600;
    color: var(--color-brand-primary);
}

.sidebar-variation-link {
    text-decoration: underline;
    font-weight: 600;
    color: var(--acron-muted);
}

.sidebar-variation-link:hover {
    color: var(--color-brand-primary);
}

.sidebar-sep {
    opacity: 0.3;
    color: var(--acron-muted);
}

/* ── Content ────────────────────────────────────────────────────────────── */

.content-container, article {
    background: transparent !important;
}

/* ── Headings ───────────────────────────────────────────────────────────── */

h1, h2, h3, h4, h5, h6 {
    font-family: 'Archivo Black', 'Inter', system-ui, sans-serif !important;
    letter-spacing: -0.025em !important;
    font-weight: 900 !important;
}

h1 {
    font-size: clamp(1.6rem, 3vw, 2.2rem) !important;
    color: var(--acron-text) !important;
    background: none !important;
    -webkit-text-fill-color: unset !important;
    text-shadow:
        3px 3px 0 var(--acron-bloom),
        6px 6px 0 var(--acron-shadow) !important;
}

h2 {
    font-size: clamp(1.15rem, 2vw, 1.4rem) !important;
    color: var(--acron-text) !important;
    text-shadow: 2px 2px 0 var(--acron-bloom) !important;
    border-bottom: 1px solid var(--acron-border);
    padding-bottom: 0.4rem;
}

h3, h4 {
    color: var(--acron-text) !important;
    text-shadow: none !important;
}

/* ── Section labels ─────────────────────────────────────────────────────── */

.rubric {
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    color: var(--acron-muted) !important;
}

.rubric::before {
    content: '▪ ';
    color: var(--color-brand-primary);
}

/* ── Code ───────────────────────────────────────────────────────────────── */

pre, code {
    font-family: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace !important;
}

div[class*="highlight"] {
    background: var(--acron-bg-card) !important;
    border: 1.5px solid var(--acron-border) !important;
    border-radius: 2px !important;
    overflow: visible !important;
    box-shadow: 4px 4px 0 var(--acron-bloom) !important;
}

div[class*="highlight"] pre {
    background: transparent !important;
    padding: 1.25rem 1.5rem !important;
    font-size: 0.8rem !important;
    line-height: 1.8 !important;
    color: var(--acron-text) !important;
}

/* Terminal bar */
div[class*="highlight"]::before {
    content: '';
    display: block;
    height: 34px;
    background: var(--acron-bg-card2);
    border-bottom: 1px solid var(--acron-border);
    background-image: radial-gradient(circle, #dd5c5c 5px, transparent 5px),
                      radial-gradient(circle, #ddad5c 5px, transparent 5px),
                      radial-gradient(circle, #5cdd7a 5px, transparent 5px);
    background-repeat: no-repeat;
    background-position: 14px 50%, 28px 50%, 42px 50%;
    background-size: 10px, 10px, 10px;
}

/* Dark syntax tokens */
[data-theme="dark"] div[class*="highlight"] .n,
[data-theme="dark"] div[class*="highlight"] .p,
[data-theme="dark"] div[class*="highlight"] .o  { color: #dcc9ff; }
[data-theme="dark"] div[class*="highlight"] .k,
[data-theme="dark"] div[class*="highlight"] .kn,
[data-theme="dark"] div[class*="highlight"] .kd,
[data-theme="dark"] div[class*="highlight"] .kr,
[data-theme="dark"] div[class*="highlight"] .ow { color: #b69aff; font-weight: 700; }
[data-theme="dark"] div[class*="highlight"] .nf,
[data-theme="dark"] div[class*="highlight"] .fm { color: #dcc9ff; }
[data-theme="dark"] div[class*="highlight"] .s,
[data-theme="dark"] div[class*="highlight"] .s1,
[data-theme="dark"] div[class*="highlight"] .s2,
[data-theme="dark"] div[class*="highlight"] .sa,
[data-theme="dark"] div[class*="highlight"] .sb { color: #78d97a; }
[data-theme="dark"] div[class*="highlight"] .c,
[data-theme="dark"] div[class*="highlight"] .c1,
[data-theme="dark"] div[class*="highlight"] .cm { color: #8e84a6; font-style: italic; }
[data-theme="dark"] div[class*="highlight"] .nc,
[data-theme="dark"] div[class*="highlight"] .nn { color: #f4ecff; font-weight: 600; }
[data-theme="dark"] div[class*="highlight"] .mi,
[data-theme="dark"] div[class*="highlight"] .mf,
[data-theme="dark"] div[class*="highlight"] .mh { color: #f78c6c; }
[data-theme="dark"] div[class*="highlight"] .bp { color: #dcc9ff; }
[data-theme="dark"] div[class*="highlight"] .sd { color: #8e84a6; font-style: italic; }

/* Light syntax tokens */
[data-theme="light"] div[class*="highlight"] .k,
[data-theme="light"] div[class*="highlight"] .kn,
[data-theme="light"] div[class*="highlight"] .kd,
[data-theme="light"] div[class*="highlight"] .kr,
[data-theme="light"] div[class*="highlight"] .ow { color: #2d1473; font-weight: 700; }
[data-theme="light"] div[class*="highlight"] .nf,
[data-theme="light"] div[class*="highlight"] .fm { color: #6b2bff; }
[data-theme="light"] div[class*="highlight"] .s,
[data-theme="light"] div[class*="highlight"] .s1,
[data-theme="light"] div[class*="highlight"] .s2 { color: #2d7a3a; }
[data-theme="light"] div[class*="highlight"] .c,
[data-theme="light"] div[class*="highlight"] .c1,
[data-theme="light"] div[class*="highlight"] .cm { color: #8e84a6; font-style: italic; }
[data-theme="light"] div[class*="highlight"] .nc,
[data-theme="light"] div[class*="highlight"] .nn { color: #6b2bff; font-weight: 600; }
[data-theme="light"] div[class*="highlight"] .mi,
[data-theme="light"] div[class*="highlight"] .mf { color: #b85500; }

/* Inline code */
code.literal, code.docutils {
    background: var(--acron-bg-card2) !important;
    border: 1px solid var(--acron-border) !important;
    border-radius: 2px !important;
    padding: 0.1em 0.4em !important;
    font-size: 0.85em !important;
    color: var(--acron-text) !important;
}

/* ── Admonitions ────────────────────────────────────────────────────────── */

.admonition {
    background: var(--acron-bg-card) !important;
    border: 1.5px solid var(--acron-border) !important;
    border-left: 3px solid var(--acron-purple-light) !important;
    border-radius: 2px !important;
    box-shadow: 3px 3px 0 var(--acron-bloom) !important;
}

.admonition.warning {
    border-left-color: #ddad5c !important;
}

.admonition.danger, .admonition.error {
    border-left-color: #dd5c5c !important;
}

.admonition.tip, .admonition.hint {
    border-left-color: #78d97a !important;
}

/* ── Tables ─────────────────────────────────────────────────────────────── */

table {
    border-collapse: collapse !important;
    border: 1.5px solid var(--acron-border) !important;
    border-radius: 2px !important;
    overflow: hidden !important;
}

table thead tr {
    background: var(--acron-bg-card2) !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

table tbody tr:nth-child(even) {
    background: rgba(107,43,255,.04) !important;
}

table td, table th {
    border-color: var(--acron-border) !important;
    white-space: normal !important;
}

.responsive-table__container {
    overflow: visible !important;
}

/* ── Inheritance diagrams ───────────────────────────────────────────────── */

.inheritance.graphviz {
    margin: 1.5rem auto;
    display: block;
    text-align: center;
}

/* ── Glossary ───────────────────────────────────────────────────────────── */

.rst-content dl.glossary dt {
    background: inherit;
    color: inherit;
    border-top: inherit;
    padding: inherit;
}

/* ── Footer ─────────────────────────────────────────────────────────────── */

footer .bottom-of-page {
    border-top: 1px solid var(--acron-border) !important;
    background: transparent !important;
}

.copyright {
    color: var(--acron-muted) !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 0.7rem !important;
    letter-spacing: 0.08em !important;
}

/* ── Site header ────────────────────────────────────────────────────────── */

#acron-site-header {
    background: rgba(10,6,18,.88);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--acron-border);
}

[data-theme="light"] #acron-site-header {
    background: rgba(244,236,255,.92);
    border-bottom-color: rgba(107,43,255,.2);
}

#acron-site-header .header-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 56px;
}

#acron-site-header .site-branding img {
    height: 28px;
    width: auto;
    display: block;
}

#acron-site-header nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

#acron-site-header nav ul li a {
    color: var(--acron-muted);
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    padding: 0.4rem 0.85rem;
    border-radius: 2px;
    transition: color 0.2s, background 0.2s;
}

#acron-site-header nav ul li a:hover {
    color: var(--acron-text);
    background: rgba(107,43,255,.12);
}

#acron-site-header nav ul li.current-menu-item a {
    color: var(--acron-text);
}

#acron-site-header .cta a {
    background: linear-gradient(180deg, #2d1473 0%, #150a45 100%) !important;
    color: #fff !important;
    padding: 0.4rem 0.9rem !important;
    border-radius: 2px !important;
    font-weight: 700 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 2px 0 var(--acron-bloom) !important;
    transition: box-shadow 0.15s, background 0.15s !important;
}

#acron-site-header .cta a:hover {
    background: linear-gradient(180deg, #3a1c8f 0%, #1b0d55 100%) !important;
}

#acron-site-header .cta svg {
    width: 0.9em;
    height: 0.9em;
    vertical-align: -0.1em;
    margin-right: 0.35em;
}

/* ── Scrollbar ──────────────────────────────────────────────────────────── */

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--acron-bg); }
::-webkit-scrollbar-thumb { background: var(--acron-purple-dim); border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: var(--acron-purple-light); }

/* ── Selection ──────────────────────────────────────────────────────────── */

::selection {
    background: rgba(107,43,255,.25);
    color: var(--acron-text);
}
