:root {
    --kp-primary: #1f2a44;
    --kp-accent: #3b82f6;
    --kp-sidebar-bg: #f7f8fa;
    --kp-border: #e3e6ea;
}

html { font-size: 15px; }

body {
    min-height: 100vh;
    color: #1c2430;
    background-color: #fff;
}

/* ---- Navbar ---- */
.kp-navbar {
    background-color: var(--kp-primary);
    box-shadow: 0 1px 0 rgba(0, 0, 0, .15);
}

.kp-brand-mark {
    display: inline-block;
    background: var(--kp-accent);
    color: #fff;
    font-weight: 700;
    border-radius: 6px;
    padding: 0 .4rem;
    margin-right: .35rem;
}

.kp-search {
    max-width: 720px;
    border: none;
    border-radius: 8px;
}

/* ---- Sidebar ---- */
.kp-sidebar {
    background-color: var(--kp-sidebar-bg);
    min-height: calc(100vh - 56px);
}

.kp-sidebar .nav-link {
    color: #33405a;
    padding: .25rem .25rem;
    border-radius: 6px;
}

.kp-sidebar .nav-link:hover { background-color: #eceef1; }
.kp-sidebar .nav-link.active { background-color: #e2e8f5; color: var(--kp-primary); font-weight: 600; }

.kp-tree { list-style: none; padding-left: .5rem; margin-bottom: 0; }
.kp-tree ul { list-style: none; padding-left: .9rem; }
.kp-tree li { margin: .1rem 0; }
.kp-tree .folder { font-weight: 600; color: #475067; }
.kp-tree a { text-decoration: none; color: #2a3142; }
.kp-tree a:hover { color: var(--kp-accent); }
.kp-tree a.active { color: var(--kp-accent); font-weight: 600; }

/* Collapsible folders via <details>/<summary> — collapsed by default, no JS. */
.kp-tree details > summary.folder {
    list-style: none;                 /* hide the default disclosure triangle (Firefox/modern) */
    cursor: pointer;
    user-select: none;
}
.kp-tree details > summary.folder::-webkit-details-marker { display: none; } /* older WebKit */
.kp-tree summary.folder::before {
    content: "\25B8";                 /* ▸ when collapsed */
    display: inline-block;
    width: 1em;
    color: #94a3b8;
}
.kp-tree details[open] > summary.folder::before { content: "\25BE"; } /* ▾ when expanded */
.kp-tree summary.folder:hover { color: var(--kp-accent); }

/* ---- Cards / badges ---- */
.kp-repo-card { transition: transform .08s ease, box-shadow .08s ease; }
.kp-repo-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.08); }

.kp-type-badge { font-size: .7rem; font-weight: 600; letter-spacing: .02em; }

/* ---- Document content ---- */
.kp-doc-content { max-width: 56rem; line-height: 1.7; }
.kp-doc-content h1, .kp-doc-content h2, .kp-doc-content h3 { margin-top: 1.6rem; }
.kp-doc-content pre {
    background: #0f172a;
    color: #e2e8f0;
    padding: 1rem;
    border-radius: 8px;
    overflow-x: auto;
}
.kp-doc-content code { background: #f1f3f5; padding: .1rem .3rem; border-radius: 4px; }
.kp-doc-content pre code { background: transparent; padding: 0; color: inherit; }
.kp-doc-content table { width: 100%; margin: 1rem 0; }
.kp-doc-content table th, .kp-doc-content table td { border: 1px solid var(--kp-border); padding: .4rem .6rem; }
.kp-doc-content blockquote { border-left: 4px solid var(--kp-accent); padding-left: 1rem; color: #51607a; }
.kp-doc-content img { max-width: 100%; }

.kp-meta { font-size: .85rem; color: #64748b; }

mark { background: #fef08a; padding: 0 .1rem; }

/* ---- Search results ---- */
.kp-result + .kp-result { border-top: 1px solid var(--kp-border); }
.kp-snippet { color: #475569; }
