@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* GitHub Dark theme adapted from obsidian-theme-github by krios2146
   https://github.com/krios2146/obsidian-theme-github */

:root {
    --gh-bg-primary: #0d1117;
    --gh-bg-secondary: #161b22;
    --gh-bg-tertiary: #010409;
    --gh-border: #30363d;
    --gh-border-muted: #21262d;
    --gh-text: #c9d1d9;
    --gh-text-muted: #8b949e;
    --gh-text-faint: #6e7681;
    --gh-green: #7ee787;
    --gh-blue: #6CB6FF;
    --gh-accent: hsl(212, 100%, 67%);
    --gh-red: #F47067;
    --gh-orange: #FFA657;
    --gh-yellow: #d29922;
    --gh-cyan: #A5D6FF;
    --gh-purple: #D2A8FF;
    --gh-inline-code-bg: #6e768166;
    --gh-code-bg: #161b22;
    --gh-line-width: 760px;
}

/* Page and card backgrounds */
body {
    background-color: var(--gh-bg-primary);
    color: var(--gh-text);
}
#body-wrapper {
    background-color: var(--gh-bg-primary);
}
.content-wrapper {
    background-color: var(--gh-bg-primary);
}

/* Content container width */
#body-wrapper .container.grid-xl {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
}

/* Card styling */
.card.pulse-card {
    background-color: var(--gh-bg-primary);
    border: 1px solid var(--gh-border);
    border-radius: 6px;
    margin-bottom: 1.5rem;
}
.card-header {
    border-bottom: 1px solid var(--gh-border);
    padding: 12px 16px;
    background-color: var(--gh-bg-secondary);
}
.card-body {
    padding: 24px 32px;
    color: var(--gh-text);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    overflow-wrap: break-word;
    word-wrap: break-word;
}
.card-footer {
    border-top: 1px solid var(--gh-border);
    padding: 8px 16px;
    background-color: var(--gh-bg-secondary);
}

/* Typography */
.card-body p {
    margin-bottom: 0.75em;
    color: var(--gh-text);
}

/* Headings */
.card-body h1,
.card-body h2,
.card-body h3,
.card-body h4,
.card-body h5,
.card-body h6 {
    color: var(--gh-green);
    margin-top: 1.5em;
    margin-bottom: 0.5em;
    font-weight: 600;
    line-height: 1.3;
}
.card-body h1 { font-size: 2em; font-weight: 700; }
.card-body h2 {
    font-size: 1.5em;
    padding-bottom: 0.3em;
    border-bottom: 1px solid var(--gh-border);
}
.card-body h3 { font-size: 1.25em; }
.card-body h4 { font-size: 1.12em; }
.card-body h5,
.card-body h6 { font-size: 1em; }

/* Links */
.card-body a {
    color: var(--gh-accent);
    text-decoration: none;
}
.card-body a:hover {
    text-decoration: underline;
}
.card-title a {
    color: var(--gh-green);
    text-decoration: none;
}
.card-title a:hover {
    text-decoration: underline;
}
.card-title h5 {
    font-size: 2em;
    font-weight: 700;
}

/* Bold and emphasis */
.card-body strong {
    color: var(--gh-text);
    font-weight: 600;
}
.card-body em {
    color: var(--gh-text);
}

/* Lists */
.card-body ul,
.card-body ol {
    padding-left: 1.25em;
    margin-bottom: 1em;
    color: var(--gh-text);
}
.card-body li {
    margin-bottom: 0.25em;
}
.card-body li > ul,
.card-body li > ol {
    padding-left: 1.25em;
    margin-top: 0.25em;
    margin-bottom: 0.25em;
}

/* Inline code */
.card-body code {
    background-color: var(--gh-inline-code-bg);
    padding: 0.2em 0.4em;
    border-radius: 6px;
    font-family: 'Fira Code', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;
    font-size: 0.85em;
    color: var(--gh-text);
}

/* Code blocks */
.card-body pre {
    background-color: var(--gh-code-bg);
    border: 1px solid var(--gh-border);
    border-radius: 6px;
    padding: 16px;
    margin-bottom: 1em;
    overflow-x: auto;
    line-height: 1.45;
}
.card-body pre code,
.card-body pre code:not(.hljs):not([class*="language-"]) {
    background-color: transparent;
    padding: 0;
    border-radius: 0;
    font-size: 0.85em;
    color: var(--gh-text-muted);
    white-space: pre;
    word-break: normal;
    overflow-wrap: normal;
}

/* Tables */
.card-body table {
    border-collapse: collapse;
    border-spacing: 0;
    width: 100%;
    margin-bottom: 1em;
    display: block;
    overflow-x: auto;
}
.card-body thead {
    background-color: var(--gh-bg-secondary);
}
.card-body th {
    font-weight: 600;
    color: var(--gh-text);
    text-align: left;
    padding: 6px 13px;
    border: 1px solid var(--gh-border);
}
.card-body td {
    padding: 6px 13px;
    border: 1px solid var(--gh-border);
    color: var(--gh-text);
}
.card-body tbody tr:nth-child(2n) {
    background-color: var(--gh-bg-secondary);
}

/* Blockquotes */
.card-body blockquote {
    border-left: 3px solid var(--gh-accent);
    padding: 0 1em;
    margin: 0 0 1em 0;
    color: var(--gh-text-muted);
    background-color: transparent;
}

/* Images */
.card-body img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
    margin: 1em 0;
    border: 1px solid var(--gh-border);
}

/* Horizontal rules */
.card-body hr {
    border: none;
    border-top: 2px solid var(--gh-border);
    margin: 2em 0;
}

/* Meta (dates, tags) */
.card-meta {
    color: var(--gh-text-muted);
    font-size: 0.85em;
}
.card-meta a {
    color: var(--gh-text-muted);
}
.card-meta a:hover {
    color: var(--gh-accent);
}

/* Permalink in card footer */
.card-footer a.permalink {
    color: var(--gh-text-faint);
    text-decoration: none;
    font-family: 'Fira Code', monospace;
}
.card-footer a.permalink:hover {
    color: var(--gh-accent);
}

/* Navigation */
.prev-next a.btn {
    color: var(--gh-accent);
    border: 1px solid var(--gh-border);
    background-color: var(--gh-bg-secondary);
    border-radius: 6px;
}
.prev-next a.btn:hover {
    background-color: var(--gh-border-muted);
    text-decoration: none;
}

/* Pagination */
.pagination li a,
.pagination li span {
    color: var(--gh-accent);
    background-color: var(--gh-bg-secondary);
    border: 1px solid var(--gh-border);
}
.pagination li.active span {
    background-color: var(--gh-accent);
    color: var(--gh-bg-primary);
    border-color: var(--gh-accent);
}

/* Search */
.search-bar {
    margin-bottom: 1.5rem;
}
.search-input {
    background-color: var(--gh-bg-tertiary);
    border: 1px solid var(--gh-border);
    color: var(--gh-text);
    border-radius: 6px;
}

/* Site header / logo area */
#header {
    background-color: var(--gh-bg-secondary);
    border-bottom: 1px solid var(--gh-border);
}
#header a {
    color: var(--gh-text);
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
::-webkit-scrollbar-track {
    background: var(--gh-bg-primary);
}
::-webkit-scrollbar-thumb {
    background: var(--gh-border);
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--gh-text-faint);
}
