/* ==========================================================================
   Grundlagen / Reset
   ========================================================================== */

.trb-tv-shell,
.trb-tv-shell *,
.trb-tv-topbar,
.trb-tv-topbar * {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

/* ==========================================================================
   Farben als CSS-Variablen - hell (Standard) und dunkel.
   Die GANZE Seite (Inhalt + Seitenleiste + Kopfleiste) reagiert auf den
   Umschalter. --trb-tv-accent wird zusätzlich pro Kurs überschrieben
   (siehe template.php, style="--trb-tv-accent: ...").
   ========================================================================== */

:root {
	--trb-tv-accent: #007cba;

	--trb-tv-bg: #f7f7f8;
	--trb-tv-text: #1e1e1e;
	--trb-tv-text-muted: #6b6b6b;
	--trb-tv-card-bg: #ffffff;

	--trb-tv-chrome-bg: #ffffff;
	--trb-tv-chrome-text: #1e1e1e;
	--trb-tv-chrome-text-muted: #6b6b6b;
	--trb-tv-chrome-border: rgba( 0, 0, 0, 0.08 );
	--trb-tv-chrome-hover: rgba( 0, 0, 0, 0.05 );
	--trb-tv-chrome-active-bg: rgba( 0, 0, 0, 0.07 );
}

[data-trb-theme="dark"] {
	--trb-tv-bg: #000000;
	--trb-tv-text: #eaeaea;
	--trb-tv-text-muted: #9a9a9a;
	--trb-tv-card-bg: #1c1c1e;

	--trb-tv-chrome-bg: #000000;
	--trb-tv-chrome-text: #eaeaea;
	--trb-tv-chrome-text-muted: #9a9a9a;
	--trb-tv-chrome-border: rgba( 255, 255, 255, 0.1 );
	--trb-tv-chrome-hover: rgba( 255, 255, 255, 0.08 );
	--trb-tv-chrome-active-bg: rgba( 255, 255, 255, 0.14 );
}

body.trb-trainer-view {
	margin: 0;
	background: var( --trb-tv-bg );
	color: var( --trb-tv-text );
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 16px !important;
	line-height: 1.55;
	transition: background 0.15s ease, color 0.15s ease;
}

/* ==========================================================================
   Fixierte Kopfleiste
   ========================================================================== */

.trb-tv-topbar {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 44px;
	background: var( --trb-tv-chrome-bg );
	border-bottom: 1px solid var( --trb-tv-chrome-border );
	z-index: 1000;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.trb-tv-topbar-inner {
	height: 100%;
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 0 16px;
}

.trb-tv-topbar-spacer {
	flex: 1 1 auto;
}

.trb-tv-toolbar-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border-radius: 6px;
	background: var( --trb-tv-chrome-hover );
	color: var( --trb-tv-chrome-text-muted );
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	border: none;
	cursor: pointer;
	font-family: inherit;
	transition: background 0.15s ease, color 0.15s ease;
}

.trb-tv-toolbar-btn:hover {
	background: var( --trb-tv-chrome-active-bg );
	color: var( --trb-tv-chrome-text );
}

.trb-tv-toolbar-btn svg {
	flex-shrink: 0;
}

.trb-tv-theme-icon-sun {
	display: none;
}

[data-trb-theme="dark"] .trb-tv-theme-icon-moon {
	display: none;
}

[data-trb-theme="dark"] .trb-tv-theme-icon-sun {
	display: inline-flex;
}

.trb-tv-theme-label-dark {
	display: none;
}

[data-trb-theme="dark"] .trb-tv-theme-label-light {
	display: none;
}

[data-trb-theme="dark"] .trb-tv-theme-label-dark {
	display: inline;
}

/* ==========================================================================
   Grundlayout: Seitenleiste + Inhalt
   ========================================================================== */

.trb-tv-shell {
	display: flex;
	min-height: 100vh;
}

.trb-tv-shell.is-sidebar-collapsed .trb-tv-sidebar {
	display: none;
}

.trb-tv-sidebar {
	flex: 0 0 280px;
	width: 280px;
	background: var( --trb-tv-chrome-bg );
	color: var( --trb-tv-chrome-text );
	padding: 24px 0 16px;
	position: sticky;
	top: 44px;
	align-self: flex-start;
	height: calc( 100vh - 44px );
	overflow-y: auto;
	transition: background 0.15s ease;
}

.trb-tv-sidebar-header {
	padding: 0 24px 20px;
	border-bottom: 1px solid var( --trb-tv-chrome-border );
	margin-bottom: 12px;
}

.trb-tv-kurs-label {
	display: block;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var( --trb-tv-chrome-text-muted );
	margin-bottom: 4px;
}

.trb-tv-kurs-title {
	display: block;
	font-size: 17px;
	font-weight: 700;
	color: var( --trb-tv-chrome-text );
	line-height: 1.3;
}

.trb-tv-nav {
	padding: 8px 12px;
}

.trb-tv-nav a {
	display: block;
	padding: 9px 12px;
	border-radius: 6px;
	color: var( --trb-tv-chrome-text-muted );
	text-decoration: none;
	font-size: 14px;
	margin-bottom: 2px;
	transition: background 0.15s ease, color 0.15s ease;
}

.trb-tv-nav a:hover {
	background: var( --trb-tv-chrome-hover );
	color: var( --trb-tv-chrome-text );
}

.trb-tv-nav a.is-active {
	background: var( --trb-tv-chrome-active-bg );
	color: var( --trb-tv-chrome-text );
	font-weight: 700;
}

.trb-tv-nav-empty {
	color: var( --trb-tv-chrome-text-muted );
	font-size: 13px;
	padding: 0 12px;
}

/* ==========================================================================
   Hauptbereich (Kursinhalt)
   ========================================================================== */

.trb-tv-main {
	flex: 1 1 auto;
	min-width: 0;
	padding: 48px 56px 96px;
}

.trb-tv-section {
	scroll-margin-top: 64px;
	margin-bottom: 40px;
	background: var( --trb-tv-card-bg );
	border-left: 4px solid var( --trb-tv-accent );
	border-radius: 10px;
	padding: 32px 36px;
	transition: background 0.15s ease;
}

.trb-tv-section:last-child {
	margin-bottom: 0;
}

.trb-tv-main .trb-kapitel {
	margin-bottom: 0;
}

.trb-tv-empty {
	color: var( --trb-tv-text-muted );
}

.trb-tv-main .trb-kapitel-titel {
	font-size: 32px !important;
	font-weight: 700 !important;
	margin: 0 0 24px !important;
	color: var( --trb-tv-text );
}

/* Textinhalt der Einträge - der eigentliche Container heisst
   "trb-eintrag-text-spalte" (nicht "trb-eintrag-text"!). */

.trb-tv-main .trb-eintrag-text-spalte p,
.trb-tv-main .trb-eintrag-text-spalte li,
.trb-tv-main .trb-info-text p {
	font-size: 16px !important;
	font-weight: 500 !important;
	color: var( --trb-tv-text );
}

.trb-tv-main .trb-eintrag-text-spalte h1 {
	font-size: 26px !important;
	font-weight: 700 !important;
	margin: 20px 0 10px !important;
	color: var( --trb-tv-text );
}

.trb-tv-main .trb-eintrag-text-spalte h2 {
	font-size: 22px !important;
	font-weight: 700 !important;
	margin: 18px 0 10px !important;
	color: var( --trb-tv-text );
}

.trb-tv-main .trb-eintrag-text-spalte h3,
.trb-tv-main .trb-eintrag-text-spalte h4,
.trb-tv-main .trb-eintrag-text-spalte h5,
.trb-tv-main .trb-eintrag-text-spalte h6 {
	font-size: 18px !important;
	font-weight: 700 !important;
	margin: 16px 0 8px !important;
	color: var( --trb-tv-text );
}

.trb-tv-main .trb-eintrag-text-spalte ul,
.trb-tv-main .trb-eintrag-text-spalte ol {
	padding-left: 22px;
}

.trb-tv-main .trb-info {
	margin-bottom: 40px;
}

/* Info-für-Coach-Box: Text IMMER dunkel, unabhängig vom Hell-/Dunkel-Modus -
   der pastellfarbene Hintergrund bleibt ja bewusst immer hell, darum darf
   der Text nicht (wie der übrige Seitentext) im Dunkelmodus aufhellen,
   sonst ist er auf dem hellen Pastell-Hintergrund kaum lesbar. */
.trb-tv-main .trb-info-text p {
	color: #2b2b2b !important;
}

.trb-tv-main .trb-info-label {
	color: #4a4a4a !important;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

/* Etwas kompakter auf kleineren Notebook-/Tablet-Landscape-Breiten, ohne
   die feste Bildspalte aufzugeben. */
@media ( max-width: 1200px ) {
	.trb-tv-sidebar {
		flex-basis: 240px;
		width: 240px;
	}

	.trb-tv-sidebar-header {
		padding-left: 18px;
		padding-right: 18px;
	}

	.trb-tv-main {
		padding: 36px 32px 80px;
	}

	.trb-tv-section {
		padding: 28px 28px;
	}
}

/* Auf iPad-Portrait und kleineren Geräten wird die Navigation zum
   überlagernden Drawer. Der Kursinhalt behält dadurch die volle Breite;
   Einträge wechseln in die einspaltige Darstellung (frontend-style.css). */
@media ( max-width: 900px ) {
	.trb-tv-shell {
		display: block;
	}

	.trb-tv-sidebar {
		position: fixed;
		top: 44px;
		left: 0;
		bottom: 0;
		z-index: 950;
		width: min( 320px, 88vw );
		height: calc( 100vh - 44px );
		box-shadow: 8px 0 26px rgba( 0, 0, 0, 0.18 );
	}

	.trb-tv-shell.is-sidebar-collapsed .trb-tv-sidebar {
		display: none;
	}

	.trb-tv-main {
		width: 100%;
		padding: 28px 20px 64px;
	}

	.trb-tv-section {
		padding: 24px 20px;
		border-radius: 8px;
	}

	.trb-tv-topbar-inner {
		gap: 8px;
		padding: 0 10px;
	}

	.trb-tv-theme-label,
	.trb-tv-edit-link span {
		display: none;
	}
}

@media ( max-width: 520px ) {
	.trb-tv-main {
		padding: 20px 12px 48px;
	}

	.trb-tv-section {
		padding: 20px 16px;
	}

	.trb-tv-main .trb-kapitel-titel {
		font-size: 27px !important;
	}
}
