/* ---------- Base ---------- */
body {
    margin: 0;
    background-color: #f0f0f0;
    color: #0a0a0a;
    font-family: sans-serif;
}

code, pre {
	font-family: monospace;
	font-size: 110%;
}

main li::marker {
	content: "✱ ";
}

/* ---------- Header ---------- */
header {
    background: #fff;
    border-bottom: 2px solid black;
    padding: 1rem;
}

/* ---------- Layout: sidebar + content + footer ---------- */
.page {
    display: flex;
    width: 100%;
    min-height: calc(100vh - 120px);
}

/* ---------- Sidebar ---------- */
nav#sidebar {
    width: 260px;
    background: #fff;
    border-right: 2px solid black;
    padding: 1rem;
    box-sizing: border-box;

    position: sticky;
    top: 0;
    height: calc(100vh - 120px);
    overflow-y: auto;
}

nav#sidebar summary.active-folder {
    font-weight: bold;
}

nav#sidebar a[aria-current="page"] {
    font-weight: bold;
    text-decoration: underline;
}

/* ---------- Content container ---------- */
.content {
    flex: 1;
    display: flex;
    justify-content: flex-start;    /* keeps .content-inner centered horizontally */
    align-items: flex-start;    /* <-- ensures content sits at the top (not vertically centered) */
    align-content: flex-start;  /* for multi-line flex wrapping, also pin lines to the top */
    background: #fff;
    box-sizing: border-box;
    padding-top: 1rem;          /* optional spacing from the top */
}

.content-inner {
    width: 900px;
    display: flex;
    flex-direction: column;
}

main {
    padding: 2rem;
}

/* ---------- Footer aligned with main ---------- */
footer {
    border-left: 2px solid black;
    padding: 1rem;
}

/* ---------- Sidebar list styling ---------- */
nav#sidebar ul {
    list-style: none;
    padding-left: 0;
}

/* Indent nested lists */
nav#sidebar ul ul {
    padding-left: 1.2em;
}

/* Folder style */
nav#sidebar li.folder {
    font-weight: bold;
    margin-top: 0.75rem;
}

nav#sidebar li.folder summary::marker {
	content: "📁 "
}

nav#sidebar li.file::before {
		content: "📄 "
}

/* File style */
nav#sidebar li.file {
    margin-left: 0;
}

nav#sidebar a {
    text-decoration: none;
    color: #000;
}

nav#sidebar a:hover {
    text-decoration: underline;
}

/* ---------- Title styling ---------- */
#titleBlock {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    padding-top: 0px;
}

#mainTitle {
    padding-top: 1px;
    font-size: 2.2rem;
    font-weight: bold;
    margin: 0;
}

#subTitle {
    font-size: 1.1rem;
    font-style: italic;
    margin: 0;
    opacity: 0.75;
}

#date {
    font-size: 1rem;
    text-decoration: underline;
    margin: 0;
    opacity: 0.6;
}

header nav {
    margin-top: 0px;
    border-bottom: 2px solid black;
}

nav#sidebar {
    background-color: #fafafa;
    gap: 2px;
}

/* ---------- Links ---------- */
header a:link,
header a:visited {
    color: black;
    text-decoration: none;
}

a:visited {
    color: blue;
}

blockquote {
    padding-left: 2em;
}

blockquote::before {
    border-left: 0.1rem solid black;
}

