@charset "utf-8";
body {
    font-family: "Lato", sans-serif;
    font-weight: 400;
    padding-top: 5.0rem;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-weight: 700;
}

.card {
    border-radius: 0.8rem!important;
}

.card-img-overlay {
    border-radius: 0.8rem!important;
}

.rounded-xl {
    border-radius: 0.8rem!important;
}

.rounded-xl-bottom {
    border-bottom-right-radius: 0.8rem !important;
    border-bottom-left-radius: 0.8rem !important;
}

.rounded-xl-top {
    border-top-left-radius: 0.8rem !important;
    border-top-right-radius: 0.8rem !important;
}


.text-profile-position {
    font-weight: 400;
}

.text-profile-bio {
    /* font-family: "Raleway"; */
    font-weight: 400;
}

.navbar {
    opacity: 0.95;
}

.inline-badge {
    height: 16px;
    vertical-align: -10%;
    margin-right: 2px;
    line-break: unset;
}

.no-break {
    white-space: nowrap;
}

.cover-image {
    width: 180px;
    max-height: 120px;
}

.abstract-body {
    min-height: 100px;
}

img.lazy {
    background-image: url('images/loading.gif');
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 50px 50px;
    min-height: 80px;
}

div.lazy {
    background-image: url('images/loading.gif');
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 50px 50px;
    min-height: 80px;
}

.badge-publication {
    font-size: 100%;
}

.email-text {
    font-family: Source Code Pro, monospace;
}

/* === Theme Tokens === */
:root {
    --bg:    #ffffff;
    --text:  #0b0b0c;
    --muted: #5f6368;
    --border:#e5e7eb;
    --card:  #ffffff;
    --link:  #006d77;
}

html[data-theme="dark"] {
    --bg:    #0b0f14;
    --text:  #e9eef3;
    --muted: #bbc3cf;
    --border:#283544;
    --card:  #0f1420;
    --link:  #58a6ff;
}

body, .bg-light { background-color: var(--bg) !important; color: var(--text); }
a { color: var(--link); }
.text-muted { color: var(--muted) !important; }
.border, .table, .table th, .table td { border-color: var(--border) !important; }

/*.navbar, .card { background-color: var(--card) !important; color: var(--text); border-color: var(--border); }*/
.card { background-color: var(--card) !important; color: var(--text); border-color: var(--border); }
.navbar-dark .navbar-brand,
.navbar-dark .navbar-nav .nav-link { color: #fff !important; }
.navbar-light .navbar-brand,
.navbar-light .navbar-nav .nav-link { color: var(--text) !important; }
.dropdown-menu { background-color: var(--card); border-color: var(--border); }
.dropdown-item { color: var(--text); }
.dropdown-item:hover { background-color: rgba(255,255,255,.06); }

html[data-theme="dark"] .btn-outline-secondary { color: var(--text); border-color: #4b5563; }
html[data-theme="dark"] .btn-outline-secondary:hover { background-color: #1f2937; }

.katex, .katex-display { color: inherit; }

/* ===== Einheitliches Layout für Education/Experience/Teaching ===== */
.teach-item + .teach-item { margin-top: 1.25rem; }

.teach-item{
    padding: 10px 0;
}

/* Hauptzeile: links Inhalt, rechts Datum */
.teach-rows {
    display: grid;
    grid-template-columns: 1fr auto;
    column-gap: 1rem;
    align-items: start;
}

.teach-left { min-width: 0; }

/* Label/Wert-Raster */
.teach-meta {
    display: grid;
    grid-template-columns: max-content 1fr;  /* links Label eng, rechts Wert flexibel */
    column-gap: .75rem;
    row-gap: .15rem;
    margin-top: .25rem;
}
.teach-label { color: var(--muted); white-space: nowrap; }
.teach-value { min-width: 0; overflow-wrap: anywhere; word-break: normal; }

/* Datum rechts, eine Zeile */
.teach-date { text-align: right; white-space: nowrap; color: var(--muted); font-weight: 600; }

/* Bessere Trennstellen für sehr lange Namen */
.hyphens-auto { hyphens: auto; }

/* Mobil: Datum unter den Inhalt */
@media (max-width: 576px) {
    .teach-rows { grid-template-columns: 1fr; }
    .teach-date { text-align: left; margin-top: .25rem; }
}

/* Card-Köpfe/-Füße folgen den Theme-Tokens (Light/Dark) */
.card-header,
.card-footer {
    background-color: var(--card) !important;
    color: var(--text);
    border-color: var(--border) !important;
}

/* Legacy-Helfer an Tokens anbinden */
.bg-white { background-color: var(--card) !important; }
.border-gray { border-color: var(--border) !important; }


/* Mobile-Overlay für Publication-Item: Light & Dark */
.pub-overlay { background-color: rgba(255, 255, 255, 0.92); }
html[data-theme="dark"] .pub-overlay { background-color: rgba(15, 20, 32, 0.92); }  /* passend zu --card */

/* Links in der Abstract-Linkzeile: im Normalzustand 'muted', Hover = Akzent */
.abstract-links a { color: var(--muted); }
.abstract-links a:hover { color: var(--link); text-decoration: underline; }

/* Sicherheitsnetz: graue Rahmen folgen dem Token */
.border-gray { border-color: var(--border) !important; }

/* Progress bar */
#read-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 1031; background: var(--link); transition: width .15s linear; }
/* Back-to-top */
#to-top { position: fixed; right: 16px; bottom: 16px; z-index: 1031; opacity: 0; pointer-events: none;
    transition: opacity .2s ease; }
#to-top.show { opacity: .9; pointer-events: auto; }
#to-top .btn { border-radius: 999px; }
@media (prefers-reduced-motion: reduce){
    #read-progress { transition: none; }
    #to-top { transition: none; }
}



