@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300;0,14..32,400;0,14..32,500;0,14..32,600;0,14..32,700;0,14..32,800;1,14..32,400&family=JetBrains+Mono:ital,wght@0,400;0,500;1,400&display=swap');

:root,
[data-md-color-scheme="slate"] {
    --nf-brand:         #4c75a3;
    --nf-brand-light:   #6b9fd4;
    --nf-bg:            #0f0e14;
    --nf-surface:       #17161e;
    --nf-surface-2:     #1e1d27;
    --nf-border:        rgba(255, 255, 255, 0.07);
    --nf-border-blue:   rgba(76, 117, 163, 0.2);
    --nf-text:          #eeeef2;
    --nf-text-2:        rgba(238, 238, 242, 0.72);
    --nf-text-muted:    rgba(238, 238, 242, 0.42);
    --nf-radius-sm:     8px;
    --nf-radius:        14px;
    --nf-radius-lg:     20px;
    --nf-radius-xl:     28px;

    --md-default-bg-color:           #0f0e14;
    --md-default-bg-color--light:    rgba(23, 22, 30, 0.54);
    --md-default-bg-color--lighter:  rgba(23, 22, 30, 0.26);
    --md-default-bg-color--lightest: rgba(23, 22, 30, 0.07);

    --md-default-fg-color:           var(--nf-text);
    --md-default-fg-color--light:    var(--nf-text-2);
    --md-default-fg-color--lighter:  var(--nf-text-muted);
    --md-default-fg-color--lightest: rgba(238, 238, 242, 0.07);

    --md-primary-fg-color:           var(--nf-brand);
    --md-primary-fg-color--light:    rgba(76, 117, 163, 0.14);
    --md-primary-fg-color--dark:     #3a5c87;
    --md-primary-bg-color:           #ffffff;
    --md-primary-bg-color--light:    rgba(255, 255, 255, 0.8);

    --md-accent-fg-color:            var(--nf-brand-light);
    --md-accent-fg-color--transparent: rgba(107, 159, 212, 0.1);
    --md-accent-bg-color:            #0f0e14;

    --md-code-bg-color: #0c0b12;
    --md-code-fg-color: #c9d1d9;

    --md-typeset-color:   var(--nf-text);
    --md-typeset-a-color: var(--nf-brand-light);
    --md-typeset-mark-color: rgba(76, 117, 163, 0.18);

    --md-admonition-fg-color: var(--nf-text);
    --md-admonition-bg-color: var(--nf-surface);

    --md-footer-bg-color:        var(--nf-surface);
    --md-footer-bg-color--dark:  var(--nf-bg);
    --md-footer-fg-color:        var(--nf-text);
    --md-footer-fg-color--light: var(--nf-text-2);
    --md-footer-fg-color--lighter: var(--nf-text-muted);

    --md-text-font-family: "Inter", system-ui, -apple-system, sans-serif;
    --md-code-font-family: "JetBrains Mono", "Fira Code", monospace;

    --md-shadow-z1: 0 2px 12px rgba(0, 0, 0, 0.45);
    --md-shadow-z2: 0 4px 28px rgba(0, 0, 0, 0.55);
    --md-shadow-z3: 0 8px 48px rgba(0, 0, 0, 0.65);
}

*, *::before, *::after { box-sizing: border-box; }

html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

body {
    font-family: var(--md-text-font-family) !important;
    background-color: var(--nf-bg) !important;
}

::selection { background: rgba(76, 117, 163, 0.28); color: var(--nf-text); }

::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track  { background: transparent; }
::-webkit-scrollbar-thumb  { background: rgba(76, 117, 163, 0.3); border-radius: 99px; }
::-webkit-scrollbar-thumb:hover { background: var(--nf-brand); }

.md-header {
    background: var(--nf-surface) !important;
    box-shadow: 0 1px 0 var(--nf-border), 0 4px 20px rgba(0, 0, 0, 0.4) !important;
    backdrop-filter: blur(12px);
}
.md-header__title { font-weight: 700 !important; letter-spacing: -0.025em; font-size: 1rem !important; }
.md-header__button { border-radius: var(--nf-radius-sm) !important; transition: background 0.18s ease, color 0.18s ease !important; }
.md-header__button:hover { background: rgba(76, 117, 163, 0.12) !important; color: var(--nf-brand-light) !important; opacity: 1 !important; }

.md-tabs { background: var(--nf-surface) !important; border-bottom: 1px solid var(--nf-border); }
.md-tabs__link { font-weight: 600 !important; font-size: 0.8rem !important; opacity: 0.55 !important; transition: opacity 0.18s ease !important; }
.md-tabs__link:hover { opacity: 0.9 !important; }
.md-tabs__link--active { opacity: 1 !important; color: var(--nf-brand-light) !important; }

.md-sidebar { background: transparent !important; }
.md-sidebar__scrollwrap { scrollbar-width: none; }
.md-sidebar__scrollwrap::-webkit-scrollbar { display: none; }

.md-nav__title { font-weight: 700 !important; font-size: 0.68rem !important; letter-spacing: 0.09em !important; text-transform: uppercase !important; color: var(--nf-text-muted) !important; }
.md-nav__link { color: var(--nf-text-2) !important; font-weight: 500 !important; font-size: 0.8rem !important; border-radius: var(--nf-radius-sm) !important; margin: 1px 0 !important; padding: 5px 10px !important; transition: background 0.15s ease, color 0.15s ease !important; }
.md-nav__link:hover { background: rgba(76, 117, 163, 0.09) !important; color: var(--nf-brand-light) !important; }
.md-nav__link--active { background: rgba(76, 117, 163, 0.12) !important; color: var(--nf-brand-light) !important; font-weight: 600 !important; }
.md-nav--secondary .md-nav__link { font-size: 0.75rem !important; color: var(--nf-text-muted) !important; padding: 4px 10px !important; }
.md-nav--secondary .md-nav__link:hover, .md-nav--secondary .md-nav__link--active { color: var(--nf-brand-light) !important; background: rgba(76, 117, 163, 0.08) !important; }

.md-main { background: var(--nf-bg) !important; }
.md-content__inner {
    background: var(--nf-surface) !important;
    border-radius: var(--nf-radius-xl) !important;
    padding: 44px 52px !important;
    margin-top: 24px !important;
    margin-bottom: 24px !important;
    border: 1px solid var(--nf-border) !important;
    box-shadow: 0 4px 48px rgba(0, 0, 0, 0.35) !important;
    animation: fade-in-up 0.38s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@media (max-width: 960px) { .md-content__inner { padding: 28px 24px !important; border-radius: var(--nf-radius-lg) !important; } }
@media (max-width: 600px)  { .md-content__inner { padding: 20px 16px !important; border-radius: var(--nf-radius) !important; } }

.md-typeset { font-family: var(--md-text-font-family) !important; line-height: 1.72 !important; color: var(--nf-text-2) !important; }
.md-typeset h1 { font-weight: 800 !important; letter-spacing: -0.04em !important; line-height: 1.15 !important; color: var(--nf-text) !important; margin-bottom: 0.4em !important; }
.md-typeset h2 { font-weight: 700 !important; letter-spacing: -0.025em !important; color: var(--nf-text) !important; border-bottom: 1px solid var(--nf-border) !important; padding-bottom: 0.35em !important; margin-top: 2em !important; }
.md-typeset h3 { font-weight: 600 !important; letter-spacing: -0.02em !important; color: var(--nf-text) !important; }
.md-typeset h4, .md-typeset h5, .md-typeset h6 { font-weight: 600 !important; color: var(--nf-text) !important; letter-spacing: -0.01em !important; }
.md-typeset p { color: var(--nf-text-2); }
.md-typeset a { color: var(--nf-brand-light) !important; text-decoration: none !important; font-weight: 500 !important; transition: color 0.15s ease !important; }
.md-typeset a:hover { color: #8ab9e8 !important; text-decoration: underline !important; text-underline-offset: 3px; }
.md-typeset strong { color: var(--nf-text) !important; font-weight: 700 !important; }

.md-typeset code { font-family: var(--md-code-font-family) !important; background: rgba(76, 117, 163, 0.1) !important; color: #8ab9e8 !important; border-radius: var(--nf-radius-sm) !important; padding: 1px 7px !important; font-size: 0.86em !important; border: 1px solid rgba(76, 117, 163, 0.16); font-weight: 400 !important; }
.md-typeset pre { border-radius: var(--nf-radius) !important; border: 1px solid var(--nf-border) !important; background: var(--md-code-bg-color) !important; overflow: hidden; }
.md-typeset pre > code { font-family: var(--md-code-font-family) !important; background: transparent !important; color: inherit !important; border: none !important; padding: 0 !important; font-size: 0.84em !important; font-weight: 400 !important; }
.highlight { background: var(--md-code-bg-color) !important; border-radius: var(--nf-radius) !important; border: 1px solid var(--nf-border) !important; overflow: hidden; }
.md-clipboard { color: var(--nf-text-muted) !important; transition: color 0.15s ease, background 0.15s ease !important; border-radius: 7px !important; }
.md-clipboard:hover { color: var(--nf-brand-light) !important; background: rgba(76, 117, 163, 0.1) !important; }

.md-typeset table:not([class]) { border-radius: var(--nf-radius) !important; overflow: hidden; border: 1px solid var(--nf-border) !important; display: table; width: 100%; }
.md-typeset table:not([class]) th { background: rgba(76, 117, 163, 0.1) !important; color: var(--nf-brand-light) !important; font-weight: 700 !important; font-size: 0.72rem !important; text-transform: uppercase !important; letter-spacing: 0.07em !important; padding: 11px 14px !important; border-bottom: 1px solid rgba(76, 117, 163, 0.18) !important; }
.md-typeset table:not([class]) td { padding: 10px 14px !important; border-bottom: 1px solid var(--nf-border) !important; color: var(--nf-text-2) !important; font-size: 0.88rem !important; }
.md-typeset table:not([class]) tr:last-child td { border-bottom: none !important; }
.md-typeset table:not([class]) tr:hover td { background: rgba(76, 117, 163, 0.04) !important; }

.md-typeset .admonition, .md-typeset details { border-radius: var(--nf-radius) !important; border: 1px solid var(--nf-border) !important; background: var(--nf-surface-2) !important; box-shadow: none !important; }
.md-typeset .admonition-title, .md-typeset summary { font-weight: 600 !important; font-size: 0.85rem !important; border-radius: calc(var(--nf-radius) - 1px) calc(var(--nf-radius) - 1px) 0 0 !important; }
.md-typeset .tip, .md-typeset .success { border-left-color: #30fc9d !important; }
.md-typeset .tip > .admonition-title, .md-typeset .success > .admonition-title { background: rgba(48, 252, 157, 0.07) !important; }
.md-typeset .note, .md-typeset .info { border-left-color: var(--nf-brand) !important; }
.md-typeset .note > .admonition-title, .md-typeset .info > .admonition-title { background: rgba(76, 117, 163, 0.07) !important; }
.md-typeset .warning { border-left-color: #f5a623 !important; }
.md-typeset .warning > .admonition-title { background: rgba(245, 166, 35, 0.07) !important; }
.md-typeset .danger, .md-typeset .error { border-left-color: #ff5a5a !important; }
.md-typeset .danger > .admonition-title, .md-typeset .error > .admonition-title { background: rgba(255, 90, 90, 0.07) !important; }
.md-typeset details > summary { cursor: pointer; color: var(--nf-brand-light) !important; font-weight: 600 !important; }

.md-search__form { background: rgba(255, 255, 255, 0.06) !important; border-radius: var(--nf-radius-sm) !important; border: 1px solid transparent !important; transition: border-color 0.18s ease, box-shadow 0.18s ease !important; }
.md-search__form:focus-within { background: rgba(76, 117, 163, 0.07) !important; border-color: rgba(76, 117, 163, 0.28) !important; box-shadow: 0 0 0 3px rgba(76, 117, 163, 0.1) !important; }
.md-search__input { color: var(--nf-text) !important; font-size: 0.85rem !important; }
.md-search__input::placeholder { color: var(--nf-text-muted) !important; }
.md-search-result { background: var(--nf-surface) !important; border-radius: var(--nf-radius) !important; border: 1px solid var(--nf-border) !important; }
.md-search-result__link:hover .md-search-result__article { background: rgba(76, 117, 163, 0.07) !important; }
.md-search-result__teaser mark { color: var(--nf-brand-light) !important; background: transparent !important; font-weight: 700; }
.md-search-result__title { font-weight: 600 !important; }

.md-footer { background: var(--nf-surface) !important; border-top: 1px solid var(--nf-border) !important; border-radius: var(--nf-radius-xl) var(--nf-radius-xl) 0 0; margin-top: 12px; }
.md-footer-meta { background: transparent !important; }
.md-footer-nav__link:hover .md-footer-nav__title { color: var(--nf-brand-light) !important; }
.md-footer-nav__title { font-weight: 600 !important; }

.md-typeset .md-button { font-weight: 600 !important; font-size: 0.85rem !important; border-radius: var(--nf-radius-sm) !important; padding: 9px 20px !important; transition: all 0.18s ease !important; background: rgba(76, 117, 163, 0.12) !important; color: var(--nf-brand-light) !important; border: 1px solid rgba(76, 117, 163, 0.25) !important; }
.md-typeset .md-button:hover { background: var(--nf-brand) !important; color: #ffffff !important; border-color: var(--nf-brand) !important; transform: translateY(-1px) !important; box-shadow: 0 6px 20px rgba(76, 117, 163, 0.3) !important; }
.md-typeset .md-button--primary { background: var(--nf-brand) !important; color: #ffffff !important; border-color: var(--nf-brand) !important; }
.md-typeset .md-button--primary:hover { background: #3a5c87 !important; border-color: #3a5c87 !important; }

.md-typeset hr { border-color: var(--nf-border) !important; margin: 2.2em 0 !important; }
.md-typeset blockquote { border-left: 3px solid var(--nf-brand) !important; background: rgba(76, 117, 163, 0.05) !important; border-radius: 0 var(--nf-radius-sm) var(--nf-radius-sm) 0 !important; color: var(--nf-text-2) !important; padding: 12px 18px !important; margin-left: 0 !important; }
.md-typeset ul li::marker { color: var(--nf-brand-light); }
.md-typeset ol li::marker { color: var(--nf-brand-light); font-weight: 700; }

[data-md-color-scheme="default"] {
    --nf-bg:        #f5f5f7;
    --nf-surface:   #ffffff;
    --nf-surface-2: #f0f0f4;
    --nf-border:    rgba(0, 0, 0, 0.08);
    --nf-text:      #111117;
    --nf-text-2:    rgba(17, 17, 23, 0.72);
    --nf-text-muted: rgba(17, 17, 23, 0.4);
    --md-default-bg-color: #f5f5f7;
    --md-default-fg-color: #111117;
    --md-code-bg-color: #f0f0f5;
    --md-code-fg-color: #1a1a2e;
    --md-footer-bg-color: #e8e8ee;
    --md-footer-bg-color--dark: #d8d8e0;
    --md-footer-fg-color: #111117;
}
[data-md-color-scheme="default"] .md-typeset code { background: rgba(76, 117, 163, 0.08) !important; color: #3a5c87 !important; border-color: rgba(76, 117, 163, 0.2) !important; }
[data-md-color-scheme="default"] .md-typeset blockquote { background: rgba(76, 117, 163, 0.04) !important; }

@keyframes fade-in-up {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}
