/* 42futures.com inspired styling for Firm documentation */

:root {
    /* Color scheme matching 42futures.com */
    --bg-primary: #161618;
    --bg-secondary: #1f1f22;
    --accent-purple: #c566ff;
    --accent-green: #02a82b;
    --accent-orange: #ff7744;
    --text-primary: #ffffff;
    --text-secondary: #a0a0a0;
    --text-tertiary: #6a6a6a;

    /* Typography */
    --font-family:
        -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue",
        "Roboto", "Inter", sans-serif;
    --font-mono: "Menlo", "Monaco", "Courier New", monospace;
    --font-weight-heavy: 800;
}

/* Override mdBook coal theme colors */
.coal {
    --bg: var(--bg-primary);
    --fg: var(--text-primary);
    --sidebar-bg: var(--bg-secondary);
    --sidebar-fg: var(--text-secondary);
    --sidebar-non-existant: var(--text-tertiary);
    --sidebar-active: var(--accent-purple);
    --sidebar-spacer: var(--bg-primary);
    --scrollbar: var(--text-tertiary);
    --icons: var(--text-secondary);
    --icons-hover: var(--accent-purple);
    --links: var(--accent-purple);
    --inline-code-color: var(--accent-green);
    --theme-popup-bg: var(--bg-secondary);
    --theme-popup-border: var(--text-tertiary);
    --theme-hover: var(--bg-primary);
    --quote-bg: var(--bg-secondary);
    --quote-border: var(--accent-purple);
    --table-border-color: var(--text-tertiary);
    --table-header-bg: var(--bg-secondary);
    --table-alternate-bg: var(--bg-secondary);
    --searchbar-border-color: var(--text-tertiary);
    --searchbar-bg: var(--bg-secondary);
    --searchbar-fg: var(--text-primary);
    --search-mark-bg: var(--accent-orange);
}

/* Typography overrides */
body {
    font-family: var(--font-family);
    background-color: var(--bg-primary);
    color: var(--text-primary);
}

/* Heavy weight headings like 42futures */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: var(--font-weight-heavy);
    color: var(--text-primary);
}

h1 {
    color: var(--accent-purple);
    border-bottom: 2px solid var(--accent-purple);
    margin-top: 0;
}

h2 {
    color: var(--text-primary);
    margin-top: 1.5em;
}

h3 {
    margin-top: 1.2em;
}

/* Code blocks */
code {
    font-family: var(--font-mono);
    background-color: var(--bg-secondary);
    color: var(--accent-green);
    padding: 0.1em 0.3em;
    border-radius: 3px;
}

pre {
    background-color: var(--bg-secondary);
    border: 1px solid var(--text-tertiary);
    border-radius: 4px;
}

pre code {
    color: var(--text-primary);
}

/* Links */
a {
    color: var(--accent-purple);
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

/* Sidebar styling */
.sidebar {
    background-color: var(--bg-secondary);
}

.sidebar-scrollbox {
    background-color: var(--bg-secondary);
}

.chapter {
    color: var(--text-secondary);
}

.chapter.active {
    color: var(--accent-purple);
    font-weight: 600;
}

.chapter:hover {
    color: var(--text-primary);
}

/* Content area */
.content {
    max-width: 70ch;
    color: var(--text-primary);
}

/* Generous spacing like 42futures */
.content p {
    line-height: 1.7;
    margin-bottom: 1.2em;
}

.content ul,
.content ol {
    line-height: 1.7;
    margin-bottom: 1.2em;
}

/* Blockquotes */
blockquote {
    border-left: 4px solid var(--accent-purple);
    background-color: var(--bg-secondary);
    padding: 1em;
    margin: 1.5em 0;
}

/* Tables */
table {
    border-collapse: collapse;
    width: 100%;
    margin: 1.5em 0;
}

table thead {
    background-color: var(--bg-secondary);
}

table th,
table td {
    border: 1px solid var(--text-tertiary);
    padding: 0.5em 1em;
}

/* Search bar */
#searchbar {
    background-color: var(--bg-secondary);
    border: 1px solid var(--text-tertiary);
    color: var(--text-primary);
}

/* Navigation buttons */
.nav-chapters {
    color: var(--text-secondary);
}

.nav-chapters:hover {
    color: var(--accent-purple);
    text-decoration: none;
}

/* Menu bar */
.menu-bar {
    background-color: var(--bg-secondary);
    border-bottom: 1px solid var(--text-tertiary);
}

/* Buttons */
button {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
    border: 1px solid var(--text-tertiary);
}

button:hover {
    background-color: var(--bg-primary);
    border-color: var(--accent-purple);
}

/* Improve contrast for better readability */
.content main {
    padding-top: 2em;
    padding-bottom: 3em;
}

/* Hide theme selector */
#theme-toggle {
    display: none;
}

/* Remove double box around code blocks */
.content pre {
    margin: 0;
}

.content figure {
    margin: 1.5em 0;
}

.content figure pre {
    margin: 0;
}
