:root {
    --tp-sidebar-bg: #212529;
    --tp-sidebar-hover: rgba(255,255,255,0.08);
}

body {
    font-family: var(--bs-body-font-family, "Open Sans", system-ui, sans-serif);
    background-color: var(--bs-body-bg, #fff);
    color: var(--bs-body-color, #212529);
}

/* --- Public --- */
.navbar {
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.card, .navbar, .btn, .form-control, .form-select, .alert {
    border-radius: .45rem;
}

.card-title { font-weight: 600; }

/* --- Markdown-Inhalte (Beschreibung, Rechtstexte) --- */
.markdown-body h1, .markdown-body h2, .markdown-body h3,
.markdown-body h4, .markdown-body h5, .markdown-body h6 {
    margin-top: 1.25rem;
    margin-bottom: .5rem;
    font-weight: 600;
    line-height: 1.25;
}
.markdown-body h1 { font-size: 1.5rem; }
.markdown-body h2 { font-size: 1.35rem; }
.markdown-body h3 { font-size: 1.15rem; }
.markdown-body p { margin-bottom: .85rem; }
.markdown-body ul, .markdown-body ol { margin-bottom: .85rem; padding-left: 1.5rem; }
.markdown-body li { margin-bottom: .2rem; }
.markdown-body blockquote {
    border-left: 3px solid var(--tp-accent, #d9400b);
    margin: .9rem 0;
    padding: .25rem 1rem;
    color: #555;
}
.markdown-body code {
    background: #f1f3f5;
    padding: .1rem .3rem;
    border-radius: 3px;
    font-size: .875em;
}
.markdown-body table { width: 100%; margin: 1rem 0; border-collapse: collapse; }
.markdown-body th, .markdown-body td { border: 1px solid #dee2e6; padding: .4rem .6rem; }
.markdown-body hr { margin: 1.2rem 0; }
.markdown-body a { color: var(--bs-link-color, #d9400b); }

.btn-cta {
    background-color: var(--hm-cta-bg, var(--bs-primary, #d9400b));
    border-color: var(--hm-cta-bg, var(--bs-primary, #d9400b));
    color: #fff ;
}
.btn-cta:hover, .btn-cta:focus {
    background-color: var(--tp-primary_hover, #b3382b);
    border-color: var(--tp-primary_hover, #b3382b);
    color: #fff;
}

/* --- Admin --- */
.admin-sidebar {
    width: 240px;
    min-height: 100vh;
    background: var(--tp-sidebar-bg, #212529);
    color: #fff;
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    position: sticky;
    top: 0;
    height: 100vh;
}
.sidebar-brand {
    font-weight: 700;
    font-size: 1.05rem;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}
.admin-nav a {
    display: block;
    padding: .65rem 1rem;
    color: #adb5bd;
    text-decoration: none;
    transition: background .15s ease, color .15s ease;
}
.admin-nav a:hover {
    background: var(--tp-sidebar-hover, rgba(255,255,255,0.08));
    color: #fff;
}
.admin-main { background: #f8f9fa; min-height: 100vh; }
.admin-auth-main {
    background: #f4f5f7;
    min-height: 100vh;
}
.admin-auth-main .alert { max-width: 460px; margin: 0 auto 1rem; }

@media (max-width: 768px) {
    .admin-sidebar { width: 100%; height: auto; min-height: 0; position: static; flex-direction: row; flex-wrap: wrap; }
    .admin-sidebar .sidebar-brand { border-bottom: none; }
    .admin-nav { display: flex; flex-wrap: wrap; flex: 1; }
    .admin-nav a { padding: .5rem .75rem; }
    .admin-sidebar .mt-auto { display: none; }
}