/* Designsprache aus der alten Python-Version (verwaiste Linie bb6b966):
   EB Garamond als Fließtext, Cheltenham Classic für die Überschrift,
   Concrete-Textur als Hintergrund, weiße zentrierte Inhaltsspalte. */

/* font-display: swap -> Text wird sofort mit System-Serife gezeichnet und
   wechselt zur Webschrift, sobald geladen (kein FOIT). Der Browser lädt nur
   das erste passende src-Format, daher .ttf als truetype korrekt deklarieren. */
@font-face {
  font-family: "EB Garamond";
  src: url("/static/assets/EBGaramond-0.016/ttf/EBGaramond12-Regular.ttf") format("truetype"),
       url("/static/assets/EBGaramond-0.016/otf/EBGaramond12-Regular.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "EB Garamond";
  src: url("/static/assets/EBGaramond-0.016/ttf/EBGaramond12-Italic.ttf") format("truetype"),
       url("/static/assets/EBGaramond-0.016/otf/EBGaramond12-Italic.otf") format("opentype");
  font-weight: normal;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Cheltenham Classic";
  src: url("/static/assets/cheltenham/CheltenhamClassic.ttf") format("truetype"),
       url("/static/assets/cheltenham/CheltenhamClassic.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

html {
  --avatar-sm: 50px;   /* Größe des Byline-Avatars; halbiert = Position des Thread-Strichs */
  --line-w: 3px;       /* Dicke des Thread-Strichs */
  background-image: url("/static/assets/concrete/Concrete012_1024p_Color.jpg");
  font-family: "EB Garamond", serif;
  font-optical-sizing: auto;
}

body {
  margin: 0;
}

/* --- Kopf --- */
header {
  background-color: white;
  margin: 0;
  text-align: center;
  padding: 0.5rem 0;
}

/* Rechtliche Links über der Überschrift. */
#legal {
  margin-bottom: 0.3rem;
}

#legal a {
  font-size: 0.9rem;
}

/* Klick auf die Überschrift führt zurück zum Feed. */
header > a {
  text-decoration: none;
}

h1 {
  font-family: "Cheltenham Classic", serif;
  background-color: white;
  display: inline-block;
  margin: 0.2rem auto;
}

h2 {
  font-family: "Cheltenham Classic", serif;
  background-color: white;
  display: inline-block;
  padding: 0 0.3rem;
}

#headerbar {
  background-color: white;
  text-align: center;
}

#headerbar a {
  background-color: white;
}

/* --- Inhaltsspalte --- */
main {
  max-width: 600px;
  margin: auto;
}

main > section,
main > div,
main > h2,
main > p {
  background-color: white;
}

main > section {
  padding: 0rem 0.3rem;
}

main > h2 {
  padding: 0.3rem 0.5rem;
}

span, a {
  font-size: 1.2rem;
}

a {
  color: black;
}

a:hover {
  text-decoration: none;
}

/* --- Buttons --- */
a.button, button {
  padding: 4px 8px;
  border: 1px solid black;
  margin: 2px 0;
  display: inline-block;
  color: black;
  text-decoration: none;
  background-color: white;
  font-family: "EB Garamond", serif;
  font-size: 1rem;
  cursor: pointer;
}

a.button:hover, button:hover {
  text-decoration: underline;
}

/* --- Einträge --- */
.card {
  position: relative;
  cursor: pointer;
  background-color: white;
  margin-bottom: 0;
  font-size: 1.2rem;
  border: none;
}

.card:hover {
  background-color: #f7f7f5;
}

.card .content {
  padding: 0.5rem 0;
  line-height: 1.5;
  overflow-wrap: break-word;
}

#focus .card {
    margin: 0rem 0.3rem ;
}

/* Beitragsbild (nicht der Byline-Avatar). */
.card img:not(.avatar) {
  display: block;
  max-width: 300px;
  margin: 0.5rem auto;
}

/* Fokussierter Beitrag zeigt das Bild in voller Breite. */
#focus .card img:not(.avatar) {
  max-width: 100%;
}

/* --- Avatare --- */
img.avatar {
  display: inline-block;
  vertical-align: middle;
  border-radius: 50%;
  object-fit: cover;
  background-color: #eee;
  margin: 0;
  max-width: none;
}

img.avatar-sm { width: var(--avatar-sm); height: var(--avatar-sm); }
img.avatar-lg { width: 72px; height: 72px; }

/* Byline mit kleinem Avatar neben Name + Zeitstempel. */
.byline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* Profilkopf: großer Avatar links neben Name und "Mitglied seit". */
.profile-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

/* --- Thread-Strich ---
   Der Strich ist ein eigenes Flex-Geschwister links neben dem Inhalt, nicht
   eine Border am Inhalt selbst. align-self: stretch macht ihn exakt so hoch
   wie der Inhalt (kein Über-/Unterstehen). Die Meta-Zeile (.byline) liegt
   außerhalb des Wrappers, also volle Breite über dem Strich.
   Standard (Feed/Fokus): Strich aus, Inhalt volle Breite. */
.threadline-wrapper { display: flex; }
.threadline { display: none; align-self: stretch; }
.body { flex: 1; min-width: 0; margin-bottom: 1rem; }

/* Vorfahren UND direkte Antworten: gleiche Einrückung, Meta-Zeile bleibt links.
   Die Strich-Spalte ist halb so breit wie der Avatar, ihr rechter Rand (= der
   Strich) liegt damit unter der Mitte des Byline-Avatars. Der Abstand zum
   Inhalt ist ebenfalls die halbe Avatarbreite -> Inhalt beginnt unter dem
   rechten Avatarrand. Der .body füllt per flex:1 den Rest. */
#ancestors .threadline,
#replies .threadline {
  display: block;
  /* Box um die Linienbreite schmaler -> die rechts gezeichnete border-right
     landet genau auf der Avatarmitte statt rechts daneben. */
  flex: 0 0 calc(var(--avatar-sm) / 2 - var(--line-w));
  margin-right: calc(var(--avatar-sm) / 2);
}

/* Nur die Vorfahren bilden einen Thread -> Linie. Antworten nur eingerückt. */
#ancestors .threadline { border-right: var(--line-w) solid gray; }

/* Interaktionsleiste: Vote-Buttons zentriert (das Antworten-Label sitzt jetzt
   oben in der Byline). */
.interactions {
  display: flex;
  justify-content: center;
  margin-top: 0.25rem;
}

.row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.muted { color: gray; }
.muted a { color: gray; font-size: 1rem; }
.ghost.selected { font-weight: bold; }
.msg { color: red; }

p.warning {
  background-color: #faa;
  padding: 10px 15px;
  font-weight: bold;
}

/* --- Formulare --- */
form {
  background-color: white;
  margin: auto;
  padding: 0.5rem 0;
}

form input,
form textarea {
  font-family: "EB Garamond", serif;
  width: 100%;
  box-sizing: border-box;
  margin: 4px 0;
}

form textarea {
  padding: 5px;
  border: 0;
  outline: 1px solid black;
  resize: vertical;
}

form input[type="file"] {
  outline: none;
}

hr {
  border: none;
  border-top: 1px solid #ccc;
}
