:root { font-size: 16px!important; }

body, html {
	height: 100%;
	margin: 0;
	background: #fff;
	font-family: 'roboto', sans-serif;
	font-size: .97rem;
	color: #333;
	line-height: 1.43;
    }

h1, h2, h3 {
	font-size: 1.37rem;
	font-weight: 400; 
	font-family: 'Questrial', sans-serif!important;
	color: #556677;
	}

/* Navbar-Togler und Buttons */

.navbar-toggler:focus,
.btn:focus {
    box-shadow: none !important;
}
	
/* Ergänzung: Mitschriften */

.mitschriften {
	text-align: justify;
	hyphens: auto; }

h3.mit, h4.mit {
	font-size: 1.13rem;
	font-weight: 400; 
	font-family: 'Questrial', sans-serif!important;
	color: #556677;
	}

.text-brand {
	font-size: 1.37rem;
	font-weight: 400; 
	font-family: 'Questrial', sans-serif!important;
	color: #556677;
	text-align: center;
	}
	
span.txt-arimo { 
	font-family: 'arimo', sans-serif; } /* Font: Arimo Regular */

a {
    color: #556677;
    text-decoration: none; }
	
a:hover {
    color: #e63900;
    text-decoration: none;
    outline: none; }
	
/* Liste Buch-Sammlung */

ul.libra {
	padding: 0;
	text-indent: 0;
	line-height: 1.43;
	list-style: none;
	text-decoration: none;
	text-align: justify;
	hyphens: auto; }
	
ul.libra li.lib {
	position: relative;
	list-style: none;
	line-height: 1.43;
	padding-left: 1rem; }

ul.libra li.lib:before {
	position: absolute;
	content: '-';
	left: 0; }

ul.libra li.lib.none {
	list-style: none;
	line-height: 1.43;
	padding-left: 1rem;
	color: #A4A4A4;	}

ul.libra li.lib.none:before {
	position: absolute;
	content: '';
	left: 0; }

span.series_numb:before,
span.series_comm:before {
	content: '(';
	margin-left: .05rem;	
	margin-right: .05rem; }
	
span.series_numb:after,
span.series_comm:after {
	content: ')';
	margin-left: .05rem; }

span.series_addi:before,
span.series_lit-genre:before {
content: '[';
	margin-left: 0!important;
	margin-right: .11rem; }

span.series_addi:after,
span.series_lit-genre:after {
	content: ']';
	margin-left: .11rem; }

/* Ende */

/* Liste Mitschriften Verwaltung, AVR */

ul.mitsch {
	padding: 0;
	text-indent: 0;
	line-height: 1.43;
	list-style: none;
	text-decoration: none;
	text-align: justify;
	hyphens: auto; }
	
ul.mitsch li.avr {
	position: relative;
	list-style: none;
	line-height: 1.43;
	padding-left: 1rem; }

ul.mitsch li.avr:before {
	position: absolute;
	content: '-';
	left: 0; }

ul.mitsch li.avr.none {
	list-style: none;
	line-height: 1.43;
	padding-left: 1rem;
	color: #A4A4A4;	}

ul.mitsch li.avr.bsp:before {
	position: absolute;
	content: '';
	left: 0; }

/* Layout */

.sidebar {
	height: 100vh;
	overflow-y: auto;
	background: #f8f9fa;
	border-right: 1px solid #dee2e6;
	padding: 1.75rem 1rem 1rem 1rem;
	position: sticky;
	top: 0;
    }

.tree-menu ul {
	list-style: none;
	padding: 0;
	margin: 0;
    }

.tree-menu .node,
.tree-menu .home {
	cursor: pointer;
	padding: 0.35rem 0;
	font-weight: 500;
	user-select: none;
	display: flex;
	align-items: flex-start;     /* NEU: oben ausrichten */
	gap: 0.63rem;                /* Abstand zwischen + und Text */
	}

.tree-menu .node::before {
	content: '+';
	font-weight: 500;
	color: #495057;
	font-size: 1.1em;
	flex-shrink: 0;              /* NEU: verhindert Schrumpfen */
	line-height: 1;              /* NEU: verhindert vertikale Zentrierung */
	margin-top: 0.15rem;         /* Optional: leicht nach unten schieben */
	}
	
.tree-menu .home::before {
	content: '≡';
	font-weight: 500;
	color: #495057;
	font-size: 1.1em;
	flex-shrink: 0;              /* NEU: verhindert Schrumpfen */
	line-height: 1;              /* NEU: verhindert vertikale Zentrierung */
	margin-top: 0.15rem;         /* Optional: leicht nach unten schieben */
	}

.tree-menu .node.open::before {
	content: '−';
    }

.tree-menu .sub-menu {
	display: none;
	padding-left: 1.5rem;
    }

 .tree-menu .sub-menu.open {
	display: block;
    }

.tree-menu a {
	color: #556677;
	text-decoration: none;
	padding: 0.35rem 0.5rem;
	display: block;
	border-radius: 0.3rem;
    }

.tree-menu a:hover,
.tree-menu a.active {
	background: #e9ecef;
	color: #e63900;
    }

.content-area {
	padding: 2rem;
	min-height: 100vh;
    }
	
/* Ende */

@media (max-width: 767.98px) {
	.sidebar { display: none; }
	.content-area { padding-top: 4rem; }
    }
	
@media (max-width: 767.98px) {
    body { padding-top: 56px !important; }
}