/* wwwUser-spezifische Styles. Wird NACH styleIn.css geladen
   und uebersteuert deren .bottom-nav + Bewerten-Layout fuer den
   neuen Mitgliederbereich. /intern bleibt unberuehrt, da es
   diese Datei nicht einbindet. */


/* ============================================================
   Body / Layout
   ============================================================ */

/* Dunklerer Mitgliederbereich-BG. iPhone-Safari-Statusbar wird
   per <meta name="theme-color"> auf #1a1a1d gesetzt — siehe head.php. */
html, body {
  background: #1a1a1d;
  background: radial-gradient(circle, #34343b 0%, #1a1a1d 100%);
  background-attachment: fixed;
}

/* Platz fuer die fixe Top-Bar oben (inkl. iOS-Statusbar) und die
   schwebende Tab-Bar unten (inkl. iOS-Home-Indicator). */
body {
  padding-top: calc(56px + env(safe-area-inset-top, 0px));
  padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));
}

/* ============================================================
   Top-Bar: Glas-Leiste ueber die volle Breite, mit Seitentitel
   und dem .btnMe-Drawer-Trigger als ueberlagerte Glas-Pille.
   Optisch passend zur Floating Bottom-Nav.
   ============================================================ */
.top-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1030;
  background: rgba(20, 20, 22, 0.65);
  -webkit-backdrop-filter: saturate(180%) blur(22px);
  backdrop-filter: saturate(180%) blur(22px);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  padding-top: env(safe-area-inset-top, 0px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.25);
}
.top-nav-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 0 60px; /* Platz fuer die btnMe-Pille rechts */
}
.top-nav-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.02em;
  text-align: center;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* .btnMe (User-Drawer-Trigger) — Glas-Pille, sitzt rechts in der
   Top-Bar. Ueberschreibt die statische top/right-Variante aus
   styleIn.css. */
.btnMe {
  position: absolute;
  top: calc(env(safe-area-inset-top, 0px) + 8px);
  right: 12px;
  z-index: 2;
  text-decoration: none;
  line-height: 0;
}
.btnMe i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #fff;
  font-size: 0.95rem;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 4px 14px rgba(0,0,0,0.4),
              inset 0 0 0 1px rgba(255,255,255,0.08);
  transition: background 0.15s ease, transform 0.15s ease;
}
.btnMe:hover i,
.btnMe:focus-visible i {
  background: rgba(238,125,7,0.85);
  transform: scale(1.05);
}
/* btnMe als <button> (Jugend-Mode: direkter Logout statt Drawer).
   UA-Styles resetten, damit nur der .btnMe i-Kreis sichtbar bleibt. */
button.btnMe {
  -webkit-appearance: none;
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}


/* ============================================================
   Bewerten-Viewport
   Ersetzt den frueheren body{display:flex; overflow:hidden}-Hack.
   Sorgt fuer zentrierte, scrollfreundliche Darstellung des Karten-
   Stacks und entkoppelt das Layout vom <body>, damit die Transforms
   der Karten nicht gegen das Body-Layout arbeiten.
   ============================================================ */

.bewertenViewport {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  /* 56 oben (Top-Bar) + 80 Bottom-Nav + Hint + Padding ~= 180.
     Hint sitzt absolut, schiebt den Stack nicht nach unten. */
  min-height: calc(100vh - 180px);  /* Fallback */
  min-height: calc(100dvh - 180px); /* dyn. Viewport-Hoehe (Safari) */
  padding: 2.2rem 1rem 1rem; /* oben Platz fuer .bewerten-hint-thin */
  overflow: hidden; /* clippt die Fly-Off-Karte am Container-Rand,
                       verhindert sonst eine waagerechte Scrollleiste
                       (z. B. Edge) waehrend der Fly-Off-Animation. */
}


/* ============================================================
   Rezept-Karten-Stack (Tinder-Stil)
   Vordere Karte ist interaktiv, hintere Karte ist im Voraus
   geladen und sitzt leicht zurueckgesetzt + abgedunkelt direkt
   dahinter, damit beim Wischen kein „Loch" entsteht.
   ============================================================ */

.recipe-stack {
  position: relative;
  width: min(90vw, 360px);
  aspect-ratio: 3 / 4;
}

.recipe-stack-card {
  position: absolute;
  inset: 0;
  display: flex;
  will-change: transform, opacity;
  transition:
    transform 280ms cubic-bezier(.2, .8, .2, 1),
    opacity   200ms ease;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* Vordere Karte: Pointer-bedienbar; touch-action: none verhindert,
   dass iOS Safari den Drag als vertikalen Page-Scroll interpretiert. */
.recipe-stack-card.front {
  z-index: 2;
  touch-action: none;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
}

.recipe-stack-card.front.is-dragging {
  cursor: grabbing;
  transition: none; /* folgt dem Finger 1:1 */
}

.recipe-stack-card.is-flying-off {
  transition:
    transform 320ms cubic-bezier(.4, 0, .8, 0.2),
    opacity   240ms ease;
  pointer-events: none;
}

/* Hintere Karte: skaliert + leicht abgedunkelt, nicht klickbar. */
.recipe-stack-card.back {
  transform: translate3d(0, 12px, 0) scale(0.94);
  opacity: 0.85;
  z-index: 1;
  pointer-events: none;
}


/* Karten-Inhalt fuellt den Stack-Card-Slot */
.recipe-stack-card > .card {
  width: 100%;
  height: 100%;
  margin: 0;
  border: none;
  border-radius: 18px;
  overflow: hidden;
  background: #101010;
  display: flex;
  flex-direction: column;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.45);
}

.recipe-stack-card .image-container {
  position: relative;
  flex: 1 1 70%;
  overflow: hidden;
}

.recipe-stack-card .image-container img {
  width: 100%;
  height: 100%;
  max-height: none;  /* override .containerBewerten-Regel aus styleIn.css */
  object-fit: cover;
  display: block;
  pointer-events: none; /* Bild-Drag-Ghost soll Swipe nicht stehlen */
  -webkit-user-drag: none;
  user-drag: none;
}

.recipe-stack-card .image-container .card-title {
  position: absolute;
  bottom: 12px;
  left: 12px;
  right: 12px;
  background: rgba(0, 0, 0, 0.55);
  color: white;
  padding: 8px 12px;
  border-radius: 10px;
  font-size: 1.05rem;
  font-weight: 600;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}

.recipe-stack-card .card-body {
  flex: 0 0 auto;
  padding: 0.875rem 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(16, 16, 16, 0.98);
}

.recipe-stack-card .card-body .star-rating {
  display: flex;
  flex-direction: row-reverse;
  font-size: 2.1em;
  justify-content: center;
  text-align: center;
  width: 100%;
}

@media (max-width: 767px) {
  .recipe-stack-card .card-body .star-rating {
    font-size: 1.85em;
  }
}

.recipe-stack-card .card-body .star-rating label {
  padding-left: 7px;
  padding-right: 7px;
}

/* iOS Safari behaelt :hover nach einem Tap so lange, bis der Nutzer
   woanders hin tappt. Wenn die vordere Karte weggewischt ist und die
   hintere an dieselbe Position nachrueckt, landet der persistente
   Hover auf den gleich positionierten Sternen der neuen Front-Karte
   und faerbt sie scheinbar voreingestellt ein.
   Loesung: Hover-Preview auf Touch-Geraeten neutralisieren. Achtung:
   das stachelt die Specificity-Hierarchie an, deshalb direkt darunter
   die :checked-Farbe nochmal mit gleicher Specificity setzen, sonst
   bleibt die gerade bewertete Karte auf iOS grau. */
@media (hover: none) {
  .recipe-stack-card .star-rating label:hover,
  .recipe-stack-card .star-rating label:hover ~ label {
    color: #ccc;
  }
  .recipe-stack-card .star-rating :checked ~ label {
    color: #d2af37;
  }
}


/* Empty-State innerhalb einer Stack-Card */
.recipe-stack-card > .empty-state {
  width: 100%;
  height: 100%;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: #101010;
  border-radius: 18px;
  color: white;
  text-align: center;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.45);
}

.recipe-stack-card > .empty-state h1 {
  font-size: 1.7rem;
  margin-bottom: 0.5rem;
}

.recipe-stack-card > .empty-state p {
  font-size: 0.95rem;
  margin-bottom: 1rem;
  opacity: 0.85;
}

.recipe-stack-card > .empty-state .btn {
  max-width: 220px;
}


/* Bewegungsempfindlichen Nutzern weichere/kuerzere Animationen geben. */
@media (prefers-reduced-motion: reduce) {
  .recipe-stack-card {
    transition: transform 120ms ease, opacity 120ms ease;
  }
  .recipe-stack-card.is-flying-off {
    transition: transform 150ms ease, opacity 120ms ease;
  }
}


/* ============================================================
   Kochbuch – Slider (CSS-Scroll-Snap) und Grid
   ============================================================ */

.rs-section-title {
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 1.75rem 0 0.85rem;
  display: flex;
  align-items: center;
  gap: 10px;
}
@media (min-width: 768px) {
  .rs-section-title {
    font-size: 1.55rem;
    margin: 2.25rem 0 1.1rem;
  }
}

/* Optionales Icon vor dem Titel (z. B. fas fa-users bei Familienplan) */
.rs-section-icon {
  color: #d2af37;
  font-size: 0.9em;
  flex: 0 0 auto;
}

/* Verlinkter Section-Titel ("see all"-Pattern) */
.rs-section-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: inherit;
  text-decoration: none;
  transition: color 200ms ease;
  min-width: 0;
}
.rs-section-link:hover,
.rs-section-link:focus-visible {
  color: #d2af37;
  outline: none;
}
.rs-section-arrow {
  font-size: 0.65em;
  opacity: 0.7;
  transition: transform 200ms ease, opacity 200ms ease;
}
.rs-section-link:hover .rs-section-arrow {
  opacity: 1;
  transform: translateX(3px);
}

/* Familienplan-Section: USP, daher mit dezentem Gold-Glow hinterlegt
   und mit anklickbarem Titel + Pfeil zur Detailseite. */
.familienplan-section {
  position: relative;
  background: radial-gradient(ellipse at top center,
              rgba(210, 175, 55, 0.07) 0%,
              transparent 70%);
  border-radius: 18px;
  padding-top: 4px;
  padding-bottom: 4px;
}

/* Page-Intro: textPre kommt als dunkler Block aus styleIn.css. Hier
   noch ein subtiler Gold-Glow oben rechts, abgerundete Unterkanten,
   schaerfere Typografie – fuegt sich besser in die schwebende Tab-Bar
   und die schwarzen Photo-Karten ein. */
.textPre {
  position: relative;
  overflow: hidden;
  border-radius: 0 0 24px 24px;
}
.textPre::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at top right,
              rgba(210, 175, 55, 0.18) 0%,
              rgba(210, 175, 55, 0.00) 60%);
}
.textPre > .container {
  position: relative;
  z-index: 1;
}
.textPre h1 {
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 0.4rem;
}
.textPre p {
  color: #c8c8c8;
  margin: 0;
  font-size: 0.95rem;
}
@media (min-width: 768px) {
  .textPre h1 { font-size: 2.2rem; }
}

/* Horizontal-Slider ohne JavaScript. Auf Mobil bleibt etwas von der
   naechsten Karte sichtbar ("Peek"), Scroll-Snap zentriert die Karte
   nach dem Loslassen. */
.horizontal-scroll-wrapper {
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  gap: 16px;
  padding: 10px 4px 30px 4px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.horizontal-scroll-wrapper::-webkit-scrollbar {
  display: none;
}

/* Slider-Wrapper mit relativer Positionierung als Anker fuer die Pfeile.
   Auf Mobil unsichtbare Pfeile, auf Desktop ein-/ausblendbar bei Hover. */
.slider-wrap {
  position: relative;
}

.slider-arrow {
  position: absolute;
  top: 50%;
  z-index: 5;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(20, 20, 22, 0.78);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.10);
  color: #fff;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  cursor: pointer;
  transform: translateY(-50%);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.35);
  transition: background 200ms ease, opacity 200ms ease, transform 150ms ease;
  opacity: 0;
}
.slider-arrow-prev { left: -8px; }
.slider-arrow-next { right: -8px; }

/* Nur auf echten Pointer-Geraeten sichtbar. Touch-User wischen. */
@media (hover: hover) {
  .slider-arrow { display: flex; }
  .slider-wrap:hover .slider-arrow,
  .slider-wrap:focus-within .slider-arrow { opacity: 1; }
}

.slider-arrow:hover { background: rgba(30, 30, 33, 0.92); }
.slider-arrow:active { transform: translateY(-50%) scale(0.94); }
.slider-arrow.is-disabled {
  opacity: 0 !important;
  pointer-events: none;
}


/* ----- Kategorien-Chips (Schnellfilter im Kochbuch + auf kategorie.php) -----
   Mobil: horizontal scrollbar, Desktop: umbrechbar in mehrere Reihen. */
.kategorie-scroll {
  display: flex;
  gap: 8px;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 4px 0 16px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.kategorie-scroll::-webkit-scrollbar { display: none; }

@media (min-width: 768px) {
  .kategorie-scroll {
    flex-wrap: wrap;
    overflow: visible;
    padding-bottom: 0;
  }
}

.kategorie-chip {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 9999px;
  color: #fff;
  font-size: 0.88rem;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  transition:
    background 200ms ease,
    border-color 200ms ease,
    transform 150ms ease;
  -webkit-tap-highlight-color: transparent;
}

.kategorie-chip:hover,
.kategorie-chip:focus-visible {
  background: rgba(210, 175, 55, 0.18);
  border-color: rgba(210, 175, 55, 0.45);
  color: #fff;
  outline: none;
}

.kategorie-chip:active {
  transform: scale(0.96);
}

/* Aktive Kategorie auf kategorie.php selbst hervorgehoben */
.kategorie-chip.is-active {
  background: rgba(210, 175, 55, 0.85);
  border-color: rgba(210, 175, 55, 1);
  color: #1a1a1d;
  font-weight: 700;
}

/* Persoenliche Chips am Ende (Meine Rezepte / Familienplaene) — leicht
   abgesetzt, damit klar wird: hier wird gefiltert nach „mir/uns", nicht
   nach Tag. */
.kategorie-chip-personal {
  background: rgba(238, 125, 7, 0.10);
  border-color: rgba(238, 125, 7, 0.32);
}
.kategorie-chip-personal i { color: #ee7d07; }
.kategorie-chip-personal:hover,
.kategorie-chip-personal:focus-visible {
  background: rgba(238, 125, 7, 0.22);
  border-color: rgba(238, 125, 7, 0.55);
}
.kategorie-chip-personal.is-active {
  background: rgba(238, 125, 7, 0.85);
  border-color: rgba(238, 125, 7, 1);
  color: #1a1a1d;
  font-weight: 700;
}
.kategorie-chip-personal.is-active i { color: #1a1a1d; }

/* Sichtbarer Separator-Pille zwischen Tag-Chips und persoenlichen
   Chips. Auf Mobile bleibt der Scroll-Container horizontal. */
.kategorie-chip-sep {
  flex: 0 0 auto;
  width: 1px;
  align-self: stretch;
  background: rgba(255,255,255,0.1);
  margin: 8px 4px;
}

/* naviMe-Drawer: Tobias-Begruessung mit rundem Foto. */
.naviMe-greeting {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-bottom: 1rem;
  color: #333;
}
.naviMe-greeting p {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.45;
  flex: 1;
}
.naviMe-greeting p strong { color: #1a1a1d; }
.naviMe-avatar {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
  flex: 0 0 auto;
  box-shadow: 0 4px 14px rgba(0,0,0,0.18);
}

/* Greyed-out List-Item fuer „folgt" / disabled-Eintraege */
.list-group-item.is-disabled {
  color: #999;
  cursor: not-allowed;
  background: transparent;
}
.list-group-item.is-disabled i { color: #ccc; }
.list-group-item.is-disabled small { color: #aaa; }


/* ============================================================
   Settings-Seiten (/lieblingsgerichte-einstellungen.php, /profil.php)
   ============================================================ */

.settings-page { color: #fff; padding-top: 1rem; padding-bottom: 3rem; }
.settings-title {
  font-size: 1.3rem;
  font-weight: 700;
  margin: 0.5rem 0 1rem;
  color: #fff;
}
.settings-notice {
  background: rgba(238,125,7,0.08);
  border: 1px solid rgba(238,125,7,0.22);
  color: #ddd;
  border-radius: 12px;
  padding: 0.7rem 0.9rem;
  font-size: 0.85rem;
  margin-bottom: 1.4rem;
}
.settings-notice i { color: #ee7d07; margin-right: 0.4rem; }
.settings-empty { color: #888; font-size: 0.9rem; margin-bottom: 1rem; }

/* Plan-Cards */
.plan-card-list {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  margin-bottom: 1.5rem;
}
.plan-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 0.9rem 1rem;
}
.plan-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
}
.plan-card-name {
  font-size: 1.05rem;
  font-weight: 600;
  color: #fff;
  margin-right: 0.5rem;
}
.plan-role-badge {
  display: inline-block;
  font-size: 0.65rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  color: #ccc;
}
.plan-role-owner {
  background: rgba(238,125,7,0.25);
  color: #ee7d07;
}
.plan-card-toggle {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.15);
  color: #ddd;
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 0.78rem;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
.plan-card-toggle i { transition: transform 0.15s ease; font-size: 0.7rem; }
.plan-card-toggle.is-open i { transform: rotate(180deg); }

.plan-member-line {
  margin-top: 0.5rem;
  font-size: 0.85rem;
  color: #bbb;
  line-height: 1.6;
}
.plan-member-chip { display: inline-flex; align-items: center; gap: 4px; }
.plan-member-chip i { color: #ee7d07; font-size: 0.78rem; }
.plan-member-count { color: #888; }
.plan-member-sep { color: #555; margin: 0 4px; }

/* Plan verwalten (aufgeklappt) */
.plan-manage {
  margin-top: 0.8rem;
  padding-top: 0.8rem;
  border-top: 1px solid rgba(255,255,255,0.07);
}
.plan-manage-sub {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #888;
  margin: 1rem 0 0.5rem;
}
.plan-rename-form {
  display: flex;
  gap: 0.4rem;
  margin-bottom: 0.4rem;
}
.plan-rename-form input,
.plan-create-form input,
.add-member-form input,
.add-member-form select,
.profil-form input {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  border-radius: 8px;
  padding: 0.5rem 0.7rem;
  font: inherit;
  color-scheme: dark;
  flex: 1;
  min-width: 0;
}
.profil-form input:disabled { color: #888; }

.plan-member-list {
  list-style: none;
  padding: 0;
  margin: 0.6rem 0 0;
  display: grid;
  gap: 0.55rem;
}
.plan-member-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.75rem 0.85rem;
  background: rgba(0,0,0,0.22);
  border-radius: 12px;
}
.plan-member-info { flex: 1; min-width: 0; }
.plan-member-avatar {
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
  background: rgba(238,125,7,0.18);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.06);
}
.plan-member-avatar-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ee7d07;
  font-weight: 700;
  font-size: 1.15rem;
}

/* Match-Badge — Gamification, Farbe nach Hoehe der Uebereinstimmung. */
.plan-match-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 600;
  background: rgba(255,255,255,0.06);
  color: #ccc;
}
.plan-match-badge i { font-size: 0.72rem; }
.plan-match-badge.is-high {
  background: rgba(78,194,122,0.20);
  color: #6cdb95;
}
.plan-match-badge.is-mid {
  background: rgba(238,125,7,0.22);
  color: #ee7d07;
}
.plan-match-badge.is-low {
  background: rgba(196,68,68,0.22);
  color: #e07e7e;
}
.plan-match-badge.is-none {
  background: rgba(255,255,255,0.04);
  color: #888;
  font-weight: 500;
}

/* Verwalten-Mode: Buttons mit .manage-only nur einblenden, wenn das
   Plan-Card-Panel auf .is-managing steht. */
.manage-only { display: none !important; }
.plan-card.is-managing .manage-only { display: inline-flex !important; }
.plan-member-name {
  font-weight: 500;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}
.plan-member-mail { color: #888; font-weight: 400; font-size: 0.78rem; }
.plan-member-stats {
  color: #888;
  font-size: 0.78rem;
  margin-top: 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.plan-member-stats > span { display: inline-flex; align-items: center; gap: 0.3rem; }
.plan-member-stats i { color: #ee7d07; }
.plan-member-link {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.45rem;
  flex-wrap: wrap;
}
.plan-link-url {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.08);
  color: #ddd;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 0.72rem;
  word-break: break-all;
  flex: 1;
  min-width: 0;
}
.copy-link-btn, .regen-link-btn {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.12);
  color: #ee7d07;
  padding: 4px 8px;
  border-radius: 6px;
}
.plan-member-actions { flex: 0 0 auto; }
.remove-member-btn { color: #c44; }

/* Add-Member */
.add-member { margin-bottom: 0.8rem; }
.add-member-tabs {
  display: flex;
  gap: 0.4rem 0.8rem;
  flex-wrap: wrap;
  font-size: 0.85rem;
  color: #ccc;
  margin-bottom: 0.5rem;
}
.add-member-tabs label { display: inline-flex; align-items: center; gap: 0.3rem; cursor: pointer; }
.add-member-form {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.add-member-form[hidden] { display: none; }
.add-member-form .add-row {
  display: flex;
  gap: 0.4rem;
  width: 100%;
}
.add-member-form .add-row input { flex: 1; }
.add-member-form .dsgvo-hint {
  width: 100%;
  font-size: 0.75rem;
  color: #888;
  margin: 0;
}
.add-member-form .dsgvo-hint i { color: #ee7d07; margin-right: 0.3rem; }

.plan-delete-btn { color: #c44; margin-top: 1rem; }
.plan-delete-hint { font-size: 0.78rem; color: #888; margin-top: 0.5rem; }

/* Neuer Plan */
.plan-create-form {
  display: flex;
  gap: 0.4rem;
  align-items: center;
}

/* Profil-Seite */
.profil-form {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  max-width: 420px;
}
.profil-avatar-row { display: flex; align-items: center; gap: 1rem; margin-bottom: 0.5rem; }
.profil-avatar-wrap { display: flex; align-items: center; gap: 0.8rem; }
.profil-avatar {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
  background: rgba(255,255,255,0.06);
  box-shadow: 0 6px 18px rgba(0,0,0,0.25);
}
.profil-avatar-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #666;
  font-size: 2.2rem;
}
.profil-avatar-upload {
  cursor: pointer;
}
.profil-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.78rem;
  color: #aaa;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.profil-field input { text-transform: none; letter-spacing: normal; font-size: 1rem; color: #fff; }

/* Profil-Sub-Sektionen (E-Mail, Passwort) */
.profil-section {
  margin-top: 1.6rem;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(255,255,255,0.06);
  max-width: 560px;
}
.profil-section-title {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #aaa;
  margin: 0 0 0.6rem;
}
.profil-email-current {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #ddd;
  flex-wrap: wrap;
}
.profil-email-current i { color: #ee7d07; }
.profil-pending-banner {
  background: rgba(238,125,7,0.10);
  border: 1px solid rgba(238,125,7,0.28);
  border-radius: 10px;
  padding: 0.6rem 0.85rem;
  color: #ddd;
  font-size: 0.85rem;
  margin-top: 0.55rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.profil-pending-banner i { color: #ee7d07; }
.profil-email-form { margin-top: 0.7rem; }
.profil-email-hint { font-size: 0.78rem; color: #888; margin: 0 0 0.5rem; }
.profil-email-row, .profil-pw-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}
.profil-email-row input,
.profil-pw-row input {
  flex: 1 1 220px;
  min-width: 0;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  border-radius: 8px;
  padding: 0.5rem 0.7rem;
  font: inherit;
  color-scheme: dark;
}

/* Confirm-Seite */
.email-confirm-page { color: #fff; min-height: 50vh; }
.email-confirm-icon { font-size: 3rem; margin-bottom: 0.6rem; display: inline-block; }
.email-confirm-icon.is-ok    { color: #4ec27a; }
.email-confirm-icon.is-error { color: #c44; }

/* ============================================================
   /freunde.php — Familie & Freunde (Verbindungen, Inbox, Funnels)
   ============================================================ */
.freunde-section { margin-bottom: 1.8rem; }
.freunde-section h2 {
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 0.7rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.freunde-section h2 i { color: #ee7d07; font-size: 0.9rem; }
.freunde-section h2 small { color: #888; font-weight: 400; }

.settings-flash {
  background: rgba(78,194,122,0.14);
  border: 1px solid rgba(78,194,122,0.34);
  color: #6cdb95;
  padding: 0.6rem 0.9rem;
  border-radius: 10px;
  margin-bottom: 1rem;
  font-size: 0.88rem;
}
.settings-flash i { margin-right: 0.4rem; }

/* Eingehende/Ausgehende Einladungen */
.freunde-invite-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.5rem; }
.freunde-invite-row {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  background: rgba(238,125,7,0.08);
  border: 1px solid rgba(238,125,7,0.22);
  border-radius: 12px;
  padding: 0.65rem 0.85rem;
}
.freunde-invite-row.is-outgoing {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.08);
}
.freunde-invite-text {
  flex: 1;
  min-width: 0;
  color: #fff;
  font-size: 0.9rem;
}
.freunde-invite-text strong { color: #fff; }
.freunde-invite-text small { color: #888; font-weight: 400; }
.freunde-invite-actions {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}

/* Verbindungs-Kacheln */
.freunde-conn-grid {
  display: grid;
  gap: 0.7rem;
  grid-template-columns: 1fr;
}
@media (min-width: 600px) {
  .freunde-conn-grid { grid-template-columns: 1fr 1fr; }
}
.freunde-conn-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 0.95rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.freunde-conn-head { display: flex; align-items: center; gap: 0.7rem; }
.freunde-conn-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  object-fit: cover;
  background: rgba(238,125,7,0.18);
  flex: 0 0 auto;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.06);
}
.freunde-conn-avatar-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ee7d07;
  font-weight: 700;
  font-size: 1.1rem;
}
.freunde-conn-ident { flex: 1; min-width: 0; }
.freunde-conn-name {
  font-weight: 600;
  color: #fff;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.freunde-conn-mail { color: #888; font-size: 0.78rem; }
.freunde-tag {
  display: inline-block;
  font-size: 0.65rem;
  padding: 1px 8px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  color: #ccc;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.freunde-tag-kid { background: rgba(238,125,7,0.22); color: #ee7d07; }

.freunde-conn-stats {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  font-size: 0.78rem;
  color: #aaa;
}
.freunde-conn-stats > span { display: inline-flex; align-items: center; gap: 0.3rem; }
.freunde-conn-stats i { color: #ee7d07; font-size: 0.72rem; }
.freunde-last { color: #888; }

.freunde-kid-link {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(0,0,0,0.18);
  border-radius: 8px;
  padding: 0.35rem 0.55rem;
}
.freunde-kid-link i { color: #ee7d07; font-size: 0.75rem; flex: 0 0 auto; }
.freunde-kid-link .plan-link-url { flex: 1; min-width: 0; }

.freunde-conn-actions {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* CTA-Cards + Funnels */
.freunde-add-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.7rem;
}
.freunde-add-card {
  background: rgba(238,125,7,0.10);
  border: 1px solid rgba(238,125,7,0.32);
  border-radius: 14px;
  padding: 1rem 0.9rem;
  text-align: center;
  color: #fff;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  transition: background 0.15s, transform 0.15s;
}
.freunde-add-card:hover {
  background: rgba(238,125,7,0.20);
  transform: translateY(-2px);
}
.freunde-add-card[hidden] { display: none; }
.freunde-add-card i {
  color: #ee7d07;
  font-size: 1.8rem;
  margin-bottom: 0.2rem;
}
.freunde-add-card strong { font-size: 0.95rem; }
.freunde-add-card small { color: #aaa; font-size: 0.78rem; }

.freunde-funnel {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(238,125,7,0.32);
  border-radius: 14px;
  padding: 1rem 1rem 1.2rem;
}
.freunde-funnel[hidden] { display: none; }
.freunde-funnel h3 {
  margin: 0.4rem 0 0.6rem;
  font-size: 1.05rem;
  color: #fff;
}
.freunde-funnel p { font-size: 0.85rem; }
.freunde-funnel-close {
  background: transparent;
  border: 0;
  color: #aaa;
  font-size: 0.85rem;
  padding: 0;
  margin-bottom: 0.4rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
.freunde-funnel-close:hover { color: #ee7d07; }

.freunde-funnel-form {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin-top: 0.6rem;
}
.freunde-funnel-form input,
.freunde-funnel-form select {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  border-radius: 8px;
  padding: 0.55rem 0.75rem;
  font: inherit;
  color-scheme: dark;
}
.freunde-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.freunde-field > span {
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #aaa;
}


/* ============================================================
   /w.php — Empfehlungs-Landing (Sign-up oder Verbindung herstellen)
   ============================================================ */
.willkommen-page { color: #fff; max-width: 520px; margin: 2rem auto; }
.willkommen-card {
  background: linear-gradient(145deg, #101010 0%, rgba(238,125,7,0.06) 100%);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 18px;
  padding: 1.8rem 1.4rem;
  text-align: center;
}
.willkommen-avatar {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto 1rem;
  background: rgba(238,125,7,0.18);
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}
.willkommen-avatar-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ee7d07;
  font-weight: 700;
  font-size: 2.2rem;
}
.willkommen-card h1 {
  font-size: 1.4rem;
  font-weight: 700;
  margin: 0 0 0.7rem;
  color: #fff;
}
.willkommen-card h1 strong { color: #ee7d07; }
.willkommen-pitch {
  color: #c8c8c8;
  font-size: 0.92rem;
  line-height: 1.55;
  margin-bottom: 1.4rem;
  text-align: left;
}
.willkommen-actions { margin-top: 1rem; }
.willkommen-info {
  background: rgba(78,194,122,0.14);
  border: 1px solid rgba(78,194,122,0.34);
  color: #6cdb95;
  padding: 0.55rem 0.85rem;
  border-radius: 10px;
  font-size: 0.9rem;
  margin-bottom: 1rem;
}
.willkommen-conn-hint {
  background: rgba(238,125,7,0.08);
  border: 1px solid rgba(238,125,7,0.22);
  color: #ddd;
  padding: 0.55rem 0.85rem;
  border-radius: 10px;
  font-size: 0.85rem;
  margin-bottom: 1rem;
  text-align: left;
}
.willkommen-conn-hint i { color: #ee7d07; margin-right: 0.35rem; }
.willkommen-conn-hint.is-muted {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.08);
  color: #aaa;
}
.willkommen-conn-hint.is-muted i { color: #aaa; }
.willkommen-error {
  background: rgba(196,68,68,0.12);
  border: 1px solid rgba(196,68,68,0.32);
  color: #e6a3a3;
  padding: 0.5rem 0.85rem;
  border-radius: 10px;
  font-size: 0.85rem;
  margin-bottom: 0.7rem;
}
.willkommen-form { margin-top: 1rem; }
.willkommen-form h2 {
  font-size: 1.05rem;
  margin: 0 0 0.7rem;
  color: #fff;
}
.willkommen-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-bottom: 0.7rem;
  text-align: left;
}
.willkommen-field > span {
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #aaa;
}
.willkommen-field input {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  border-radius: 8px;
  padding: 0.55rem 0.75rem;
  font: inherit;
  color-scheme: dark;
}


/* ============================================================
   /empfehlen.php — Meine Empfehlungen
   ============================================================ */
.empfehlen-share {
  background: linear-gradient(145deg, #101010 0%, rgba(238,125,7,0.06) 100%);
  border: 1px solid rgba(238,125,7,0.22);
  border-radius: 16px;
  padding: 1.1rem 1.1rem 1.3rem;
  margin-bottom: 1.4rem;
}
.empfehlen-url-row {
  display: flex;
  gap: 0.4rem;
  margin-bottom: 0.7rem;
}
.empfehlen-url {
  flex: 1;
  background: rgba(0,0,0,0.25);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  padding: 0.55rem 0.75rem;
  font-family: monospace;
  font-size: 0.82rem;
  color: #fff;
  word-break: break-all;
  min-width: 0;
}
.empfehlen-share-buttons {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-bottom: 1.1rem;
}
.empfehlen-share-btn {
  flex: 1 1 100px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.55rem 0.7rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.05);
  color: #fff;
  text-decoration: none;
  font-size: 0.85rem;
  cursor: pointer;
}
.empfehlen-share-btn:hover { background: rgba(255,255,255,0.08); color: #fff; }
.empfehlen-share-btn.is-wa   { background: rgba(37,211,102,0.18); border-color: rgba(37,211,102,0.42); }
.empfehlen-share-btn.is-wa i { color: #25d366; }
.empfehlen-share-btn.is-mail { background: rgba(238,125,7,0.16); border-color: rgba(238,125,7,0.38); }
.empfehlen-share-btn.is-mail i { color: #ee7d07; }
.empfehlen-share-btn[hidden] { display: none; }

.empfehlen-qr {
  text-align: center;
  background: rgba(255,255,255,0.04);
  border-radius: 12px;
  padding: 0.8rem;
}
.empfehlen-qr img {
  background: #fff;
  border-radius: 10px;
  padding: 4px;
  max-width: 240px;
  height: auto;
}
.empfehlen-qr small {
  display: block;
  margin-top: 0.45rem;
  color: #888;
  font-size: 0.75rem;
}

/* Toggle */
.empfehlen-toggle-block { margin-bottom: 1.5rem; }
.empfehlen-toggle {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  padding: 0.85rem 1rem;
  cursor: pointer;
}
.empfehlen-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.empfehlen-toggle-slider {
  position: relative;
  flex: 0 0 auto;
  width: 44px;
  height: 24px;
  background: rgba(255,255,255,0.12);
  border-radius: 999px;
  margin-top: 2px;
  transition: background 0.2s;
}
.empfehlen-toggle-slider::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  transition: transform 0.2s;
}
.empfehlen-toggle input:checked + .empfehlen-toggle-slider {
  background: #ee7d07;
}
.empfehlen-toggle input:checked + .empfehlen-toggle-slider::after {
  transform: translateX(20px);
}
.empfehlen-toggle-text { flex: 1; }
.empfehlen-toggle-text strong {
  display: block;
  color: #fff;
  font-size: 0.92rem;
  margin-bottom: 0.15rem;
}
.empfehlen-toggle-text small {
  color: #aaa;
  font-size: 0.78rem;
  line-height: 1.4;
  display: block;
}

/* Badges */
.empfehlen-badge-block { margin-bottom: 1.5rem; }
.empfehlen-badge-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.4rem;
  margin-bottom: 0.6rem;
}
.empfehlen-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 0.55rem 0.3rem;
  text-align: center;
  opacity: 0.45;
  transition: opacity 0.2s, transform 0.2s;
}
.empfehlen-badge.is-reached { opacity: 1; }
.empfehlen-badge.is-active {
  background: rgba(238,125,7,0.16);
  border-color: rgba(238,125,7,0.42);
  transform: translateY(-2px);
}
.empfehlen-badge-icon { font-size: 1.6rem; line-height: 1; }
.empfehlen-badge-name { color: #fff; font-size: 0.72rem; font-weight: 600; margin-top: 0.3rem; }
.empfehlen-badge-min { color: #888; font-size: 0.7rem; }
.empfehlen-badge-status { color: #ccc; font-size: 0.85rem; margin: 0.6rem 0 0; }

/* Liste der Geworbenen */
.empfehlen-list-block { margin-top: 1.4rem; }
.empfehlen-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.45rem; }
.empfehlen-row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 0.55rem 0.75rem;
}
.empfehlen-row-info { flex: 1; min-width: 0; }
.empfehlen-row-name { color: #fff; font-weight: 500; font-size: 0.9rem; }
.empfehlen-row-meta { color: #888; font-size: 0.76rem; }
.empfehlen-row-tag {
  flex: 0 0 auto;
  font-size: 0.72rem;
  padding: 2px 8px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  white-space: nowrap;
}
.empfehlen-row-tag.is-connected { background: rgba(78,194,122,0.18); color: #6cdb95; }
.empfehlen-row-tag.is-anonymous { background: rgba(255,255,255,0.06); color: #aaa; }


/* ============================================================
   /kleineres-uebel.php — Detail-Layout, Alternativen, Sliders
   ============================================================ */
.uebel-detail { color: #fff; }
.uebel-hero {
  position: relative;
  min-height: 240px;
  background-size: cover;
  background-position: center;
  border-radius: 0 0 24px 24px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 1.2rem;
}
.uebel-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.75) 100%);
}
.uebel-hero-content { position: relative; z-index: 1; width: 100%; }
.uebel-hero-cat {
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #ee7d07;
  margin-bottom: 0.3rem;
}
.uebel-hero-content h1 {
  margin: 0 0 0.4rem;
  color: #fff;
  font-size: 1.7rem;
  line-height: 1.2;
}
.uebel-hero-meta {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  font-size: 0.85rem;
  color: #ddd;
}
.uebel-hero-meta i { color: #ee7d07; margin-right: 0.25rem; }
.uebel-hero-portion { color: #999; }

.uebel-card {
  max-width: 760px;
  margin: 0 auto;
  padding: 1.25rem 1rem 2rem;
}
@media (min-width: 768px) {
  .uebel-card { padding: 2rem 2.25rem 3rem; }
}
.uebel-section { margin-bottom: 1.8rem; }
.uebel-section h2 {
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 0.7rem;
  display: flex;
  align-items: center;
  gap: 0.45rem;
}
.uebel-section h2 i { color: #ee7d07; font-size: 0.9rem; }
.uebel-lead {
  color: #c8c8c8;
  font-size: 0.95rem;
  line-height: 1.55;
  margin: 0;
}

/* Macro-Chips */
.uebel-macro-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.uebel-macro-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  color: #ddd;
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
}
.uebel-macro-chip.is-kcal {
  background: rgba(238,125,7,0.16);
  border-color: rgba(238,125,7,0.36);
  color: #ee7d07;
}
.uebel-macro-chip .dot {
  width: 8px; height: 8px; border-radius: 50%;
  display: inline-block;
}
.uebel-macro-chip .dot-kh      { background: #f4c14a; }
.uebel-macro-chip .dot-zucker  { background: #f29ec4; }
.uebel-macro-chip .dot-fett    { background: #ee7d07; }
.uebel-macro-chip .dot-protein { background: #4ec27a; }

/* Aktivitaeten */
.uebel-aktivitaet-chips {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.4rem;
}
@media (min-width: 560px) {
  .uebel-aktivitaet-chips { grid-template-columns: repeat(4, 1fr); }
}
.uebel-akt-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.55rem 0.7rem;
  background: rgba(0,0,0,0.22);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px;
  color: #ddd;
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
}
.uebel-akt-chip i { color: #ee7d07; }
.uebel-akt-hint {
  margin-top: 0.55rem;
  color: #888;
  font-size: 0.75rem;
}
.uebel-akt-hint i { color: #666; margin-right: 0.3rem; }

/* Alternativen */
.uebel-alt-list {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.uebel-alt-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 0.9rem 1rem;
}
.uebel-alt-head {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.6rem;
}
.uebel-alt-img {
  width: 64px; height: 64px;
  border-radius: 12px;
  object-fit: cover;
  background: rgba(255,255,255,0.06);
  flex: 0 0 auto;
}
.uebel-alt-ident { flex: 1; min-width: 0; }
.uebel-alt-ident h3 {
  margin: 0 0 0.2rem;
  font-size: 1rem;
  color: #fff;
  font-weight: 600;
}
.uebel-alt-meta {
  color: #aaa;
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
}
.uebel-spar-pill {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  background: rgba(255,255,255,0.06);
  color: #ddd;
}
.uebel-spar-pill.is-high   { background: rgba(78,194,122,0.20); color: #6cdb95; }
.uebel-spar-pill.is-mid    { background: rgba(244,193,74,0.20); color: #f4c14a; }
.uebel-spar-pill.is-low    { background: rgba(238,125,7,0.20);  color: #ee7d07; }
.uebel-spar-pill.is-equal  { background: rgba(255,255,255,0.06); color: #aaa; }
.uebel-spar-pill i { font-size: 0.68rem; }
.uebel-spar-bar {
  display: flex;
  height: 6px;
  background: rgba(255,255,255,0.06);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 0.6rem;
}
.uebel-spar-bar-alt  { background: #4ec27a; }
.uebel-spar-bar-orig { background: rgba(238,125,7,0.55); }
.uebel-alt-desc {
  color: #c8c8c8;
  font-size: 0.88rem;
  line-height: 1.55;
  margin-bottom: 0.7rem;
}
.uebel-alt-desc p { margin: 0 0 0.5rem; }
.uebel-alt-desc p:last-child { margin-bottom: 0; }
.uebel-alt-actions {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}

/* „Wenn schon, dann ehrlich tracken" */
.uebel-eat-anyway {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px dashed rgba(255,255,255,0.07);
}
.uebel-eat-anyway-hint {
  color: #888;
  font-size: 0.82rem;
  margin: 0 0 0.4rem;
}
.uebel-eat-anyway-hint i { color: #ee7d07; margin-right: 0.3rem; }

/* Slider-Cards in der Uebersicht reusen .recipe-card mit kleinen Tweaks */
.uebel-slider-section .rs-section-icon {
  font-style: normal;
  font-size: 1.1rem;
}


/* ============================================================
   /einladung.php — Verbindungs-Einladung annehmen/ablehnen
   ============================================================ */
.einladung-page { color: #fff; max-width: 520px; margin: 0 auto; }
.einladung-card {
  background: linear-gradient(145deg, #101010 0%, rgba(238,125,7,0.06) 100%);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 18px;
  padding: 1.8rem 1.4rem;
  text-align: center;
}
.einladung-avatar {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto 1rem;
  background: rgba(238,125,7,0.18);
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}
.einladung-avatar-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ee7d07;
  font-weight: 700;
  font-size: 2.2rem;
}
.einladung-card h1 {
  font-size: 1.35rem;
  font-weight: 700;
  margin: 0 0 0.7rem;
  color: #fff;
}
.einladung-explain {
  color: #c8c8c8;
  font-size: 0.92rem;
  line-height: 1.5;
  margin-bottom: 1.4rem;
}
.einladung-explain-sub {
  color: #aaa;
  font-size: 0.85rem;
  margin: 0.8rem 0;
}
.einladung-form { margin-top: 1rem; }
.einladung-pw-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.7rem;
}
.einladung-pw-row input {
  flex: 1 1 200px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  border-radius: 8px;
  padding: 0.55rem 0.75rem;
  font: inherit;
  color-scheme: dark;
}
.einladung-actions .btn { width: 100%; }
.einladung-warn {
  background: rgba(196,68,68,0.10);
  border: 1px solid rgba(196,68,68,0.35);
  color: #e6a3a3;
  border-radius: 10px;
  padding: 0.55rem 0.85rem;
  font-size: 0.85rem;
  margin-bottom: 0.8rem;
}
.einladung-warn i { color: #c44; margin-right: 0.35rem; }
.einladung-result { text-align: center; max-width: 480px; margin: 0 auto; }


/* Managed-Profil (Eltern verwalten Kind/Bekannten) */
.profil-back {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #ee7d07;
  text-decoration: none;
  font-size: 0.85rem;
  margin-bottom: 0.6rem;
}
.profil-back:hover { color: #f81f01; }
.profil-managed-hint {
  background: rgba(238,125,7,0.10);
  border: 1px solid rgba(238,125,7,0.25);
  border-radius: 10px;
  padding: 0.55rem 0.85rem;
  font-size: 0.85rem;
  color: #ddd;
  margin: 0 0 1rem;
  max-width: 560px;
}
.profil-managed-hint i { color: #ee7d07; margin-right: 0.35rem; }


/* Grid am Seitenende */
.recipe-grid-wrapper {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  padding-bottom: 16px;
}

/* Infinite-Scroll Sentinel/Loader fuer „Neu entdeckt" auf /kochbuch.php.
   Sitzt direkt unter dem Grid, IntersectionObserver triggert das
   Nachladen. */
.discover-sentinel {
  padding: 1.2rem 0 2rem;
  text-align: center;
}
.discover-sentinel[hidden] { display: none; }
.discover-loader {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #888;
  font-size: 0.85rem;
}
.discover-loader i { color: #ee7d07; }
@media (min-width: 768px)  { .recipe-grid-wrapper { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px)  { .recipe-grid-wrapper { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1400px) { .recipe-grid-wrapper { grid-template-columns: repeat(5, 1fr); } }

/* Photo-overlay Karte (Slider + Grid teilen sich die Optik).
   Die Karte IST das Bild; Titel + Meta liegen mit Gradient als Overlay
   unten drauf, Kalorien + Rating als Glass-Chips oben rechts. Aktionen
   leben in der Detail-Seite — Karten bleiben absichtlich aufgeraeumt. */
.recipe-card {
  position: relative;
  display: block;
  aspect-ratio: 4 / 5;
  border-radius: 18px;
  overflow: hidden;
  background: #1a1a1d;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
  color: #fff;
  text-decoration: none;
  transition: transform 200ms ease, box-shadow 200ms ease;
  -webkit-tap-highlight-color: transparent;
  isolation: isolate;
}

/* Hover-Lift + Image-Zoom nur auf echten Pointer-Geraeten */
@media (hover: hover) {
  .recipe-card:hover,
  .recipe-card:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.4);
    outline: none;
  }
  .recipe-card:hover .rc-image {
    transform: scale(1.06);
  }
}

.recipe-card:active {
  transform: scale(0.98);
}

/* Slider-Kartenbreite + Snap */
.horizontal-scroll-wrapper .recipe-card {
  flex: 0 0 85%;
  scroll-snap-align: center;
}
@media (min-width: 768px) {
  .horizontal-scroll-wrapper .recipe-card {
    flex: 0 0 40%;
    scroll-snap-align: start;
  }
}
@media (min-width: 1200px) {
  .horizontal-scroll-wrapper .recipe-card {
    flex: 0 0 22%;
  }
}

/* Bild fuellt die Karte komplett */
.recipe-card .rc-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

/* Lesbarkeits-Gradient unten — Titel sitzt auf jedem Foto sauber */
.recipe-card .rc-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
              rgba(0, 0, 0, 0.00)  0%,
              rgba(0, 0, 0, 0.15) 45%,
              rgba(0, 0, 0, 0.85) 100%);
  pointer-events: none;
}

/* Glass-Chips oben rechts (kcal + Rating) */
.recipe-card .rc-badges {
  position: absolute;
  top: 10px;
  right: 10px;
  display: flex;
  gap: 6px;
  z-index: 2;
}
.recipe-card .rc-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(0, 0, 0, 0.5);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #fff;
  padding: 4px 9px;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1;
}
.recipe-card .rc-chip i {
  font-size: 0.68rem;
}
.recipe-card .rc-chip-rating i {
  color: #ffc107;
}
.recipe-card .rc-chip-coverage i { font-size: 0.62rem; opacity: 0.85; }
.recipe-card .rc-chip-coverage.is-full {
  background: rgba(78,194,122,0.22);
  border-color: rgba(78,194,122,0.42);
  color: #6cdb95;
}
.recipe-card .rc-chip-coverage.is-mid  { color: #f4c14a; }
.recipe-card .rc-chip-coverage.is-low  { color: #aaa; }

/* Titel + Meta-Zeile am unteren Rand.
   padding-right haelt Abstand zum Quick-Cook-Button unten rechts. */
.recipe-card .rc-headline {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0.85rem 56px 1rem 1rem;
  z-index: 2;
}

/* Quick-Cook „+"-Pille unten rechts: ein-Tap-Plan fuer heute,
   ohne dass die Karte selbst „geklickt" wird (Card ist ein <a>). */
.rc-quick-cook {
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 3;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(210, 175, 55, 0.95);
  color: #1a1a1d;
  border: 1px solid rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.45);
  transition: transform 150ms ease, background 200ms ease;
  -webkit-tap-highlight-color: transparent;
}
.rc-quick-cook:hover {
  background: rgba(232, 200, 80, 1);
  transform: scale(1.06);
}
.rc-quick-cook:active {
  transform: scale(0.94);
}
.rc-quick-cook.is-done {
  background: rgba(76, 175, 80, 0.95);
  color: #fff;
}
.rc-quick-cook.is-error {
  background: rgba(220, 53, 69, 0.95);
  color: #fff;
}
.recipe-card .rc-title {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 5px;
  color: #fff;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}
.recipe-card .rc-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 0.75rem;
  color: #f3f3f3;
  opacity: 0.92;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}
.recipe-card .rc-meta i {
  font-size: 0.7rem;
  margin-right: 3px;
  color: #d2af37;
}
.recipe-card .rc-meta .rc-dot {
  opacity: 0.5;
}


/* ============================================================
   iOS-Style Floating Glass Tab-Bar
   Ueberschreibt .bottom-nav aus styleIn.css.
   ============================================================ */

.bottom-nav {
  /* Position: schwebend mit seitlichen Abstaenden + Safe-Area */
  bottom: max(0.75rem, env(safe-area-inset-bottom, 0.75rem));
  left: 50%;
  width: calc(100% - 1.5rem);
  max-width: 540px;
  transform: translateX(-50%);

  /* Glass-Look: dunkle Folie + Backdrop-Filter */
  background: rgba(20, 20, 22, 0.55);
  background-image: none;
  filter: none;
  -webkit-backdrop-filter: saturate(180%) blur(22px);
  backdrop-filter: saturate(180%) blur(22px);

  /* Form */
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 9999px;

  /* Schatten fuer „abhebende" Optik */
  box-shadow:
    0 14px 36px rgba(0, 0, 0, 0.4),
    0 2px 6px rgba(0, 0, 0, 0.2);

  z-index: 1030; /* aus styleIn.css uebernommen */
}

.bottom-nav .container {
  min-height: 64px;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.bottom-nav a {
  padding: 0.4rem 0.5rem;
  border-radius: 14px;
  transition: background 200ms ease, transform 150ms ease;
  min-width: 44px;
  min-height: 44px;
}

/* Label unter dem Icon (iOS-Tab-Bar-Stil). Ersetzt die alte
   d-none-d-lg-block-Logik, die das Label auf Mobil komplett versteckt
   hatte. */
.bottom-nav .nav-label {
  display: block;
  font-size: 0.65rem;
  line-height: 1.1;
  margin-top: 3px;
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

@media (min-width: 480px) { .bottom-nav .nav-label { font-size: 0.7rem;  } }
@media (min-width: 768px) { .bottom-nav .nav-label { font-size: 0.75rem; } }

.bottom-nav a:hover,
.bottom-nav a:focus-visible {
  background: rgba(255, 255, 255, 0.10);
  outline: none;
}

.bottom-nav a:active {
  transform: scale(0.94);
}

.bottom-nav a.is-active {
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
}


/* Fallback fuer Browser ohne backdrop-filter (z. B. aelteres
   Firefox-Android): solider, dunkler Hintergrund. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .bottom-nav {
    background: rgba(16, 16, 16, 0.96);
  }
}

/* Bewegungsempfindliche Nutzer: Mikro-Interaktionen sofort,
   ohne Bounce-/Scale-Effekt. */
@media (prefers-reduced-motion: reduce) {
  .bottom-nav a {
    transition: none;
  }
  .bottom-nav a:active {
    transform: none;
  }
}


/* ============================================================
   Rezept-Detail (iOS-Stil mit ueberlappender Content-Karte)
   ============================================================ */

.rezept-detail {
  color: #fff;
  /* Dunkler Hintergrund bis zum Page-Ende — der Card ist nur 760px breit
     und sein padding-bottom reicht nicht zwingend bis zur Tab-Bar.
     Damit kein heller body-Streifen unten/seitlich sichtbar wird, deckt
     die ganze Section. Flex-column + flex:1 auf der Card laesst diese
     den restlichen Platz nach unten ausfuellen. */
  background: #1a1a1d;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* --- Hero (Bild + Gradient + Back-Button) --- */
.rezept-hero {
  position: relative;
  min-height: 60vh;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
}

@media (min-width: 768px) {
  .rezept-hero { min-height: 70vh; }
}

.rezept-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
              rgba(0, 0, 0, 0.00)  0%,
              rgba(0, 0, 0, 0.15) 35%,
              rgba(0, 0, 0, 0.72) 85%,
              rgba(0, 0, 0, 0.95) 100%);
}

/* Schwebender Back-Button (Glass) */
.rezept-back {
  position: absolute;
  top: calc(env(safe-area-inset-top, 0px) + 1rem);
  left: 1rem;
  z-index: 3;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.10);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  transition: background 200ms ease, transform 150ms ease;
}
.rezept-back:hover,
.rezept-back:focus-visible {
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  outline: none;
}
.rezept-back:active {
  transform: scale(0.94);
}

.rezept-hero-content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  padding: 5rem 1.25rem 3rem;
}

@media (min-width: 768px) {
  .rezept-hero-content { padding: 6rem 2rem 4rem; }
}

/* Kategorie-Chips im Hero (Glass-Style auf dem Bild) */
.rezept-hero-cats {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 1rem;
}

.rezept-cat-chip {
  display: inline-block;
  padding: 4px 12px;
  background: rgba(255, 255, 255, 0.18);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 9999px;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 500;
  text-decoration: none;
  transition: background 200ms ease;
}
.rezept-cat-chip:hover,
.rezept-cat-chip:focus-visible {
  background: rgba(255, 255, 255, 0.28);
  color: #fff;
}

.rezept-hero-content h1 {
  font-size: 2.1rem;
  line-height: 1.1;
  font-weight: 700;
  margin-bottom: 0.75rem;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.6);
}

@media (min-width: 768px) {
  .rezept-hero-content h1 { font-size: 2.8rem; }
}

.rezept-hero-desc {
  font-size: 1.02rem;
  max-width: 60ch;
  opacity: 0.92;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6);
  margin-bottom: 1rem;
  line-height: 1.45;
}

.rezept-hero-rating {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 13px;
  background: rgba(0, 0, 0, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 9999px;
  font-size: 0.95rem;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.rezept-hero-rating i      { color: #ffc107; }
.rezept-hero-rating strong { color: #fff; font-weight: 700; }
.rezept-hero-rating-count  { font-size: 0.82rem; opacity: 0.8; margin-left: 2px; }


/* --- Content-Card, ueberlappt den Hero (iOS-App-Pattern) --- */
.rezept-card {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 760px;
  margin: -24px auto 0;
  background: #1a1a1d;
  border-radius: 24px 24px 0 0;
  padding: 1.5rem 1.25rem 2rem;
  box-shadow: 0 -12px 30px rgba(0, 0, 0, 0.4);
  /* Im flex:column-Parent (.rezept-detail) den restlichen Platz nach
     unten ausfuellen — der Card-Block reicht damit bis zur Tab-Bar,
     auch wenn der Inhalt kuerzer ist. */
  flex: 1 0 auto;
}

@media (min-width: 768px) {
  .rezept-card { padding: 2rem 2.25rem 3rem; }
}


/* Meta-Chips */
.rezept-meta-chips {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
  justify-content: center;
}

.rezept-meta-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 9999px;
  font-size: 0.88rem;
  color: #e8e8e8;
  white-space: nowrap;
}
.rezept-meta-chip i { color: #d2af37; }


/* Action-Buttons */
.rezept-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 2.25rem;
}

.rezept-actions .btn-lg {
  padding: 12px 26px;
  font-size: 1rem;
  border-radius: 14px;
  font-weight: 600;
}

.rezept-actions .btn-outline-light {
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: transparent;
}
.rezept-actions .btn-outline-light:hover,
.rezept-actions .btn-outline-light:focus-visible {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
}

/* Dropdown im Dark-Theme */
.rezept-actions .dropdown-menu {
  background: #1f1f22;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 6px;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.4);
}
.rezept-actions .dropdown-item {
  color: #e8e8e8;
  border-radius: 8px;
  padding: 8px 12px;
}
.rezept-actions .dropdown-item:hover,
.rezept-actions .dropdown-item:focus {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}


/* Section-Header */
.rezept-section {
  margin-bottom: 2rem;
}
.rezept-section:last-child {
  margin-bottom: 0;
}

.rezept-section h2 {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 10px;
}
.rezept-section h2 i {
  color: #d2af37;
  font-size: 1rem;
}
.rezept-section h2 small {
  font-size: 0.75rem;
  font-weight: 400;
  color: #999;
  margin-left: auto;
}


/* ============================================================
   Barcode-Scanner-Modal (Tagesplan + Einkaufsliste)
   ============================================================ */
.barcode-scanner {
  position: fixed;
  inset: 0;
  z-index: 1090;
  background: rgba(0,0,0,0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.barcode-scanner[hidden] { display: none; }
.barcode-scanner-inner {
  width: 100%;
  max-width: 520px;
  max-height: 90vh;
  overflow-y: auto;
  background: #1a1a1d;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 16px;
  padding: 1rem 1rem 1.2rem;
  color: #fff;
}
.barcode-scanner-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 0.8rem;
}
.barcode-scanner-head h2 { margin: 0; font-size: 1.05rem; }
.barcode-scanner-head i { color: #ee7d07; margin-right: 0.35rem; }

.barcode-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  background: #000;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 0.6rem;
}
.barcode-stage[hidden] { display: none; }
.barcode-stage video { width: 100%; height: 100%; object-fit: cover; }
.barcode-reticle {
  position: absolute; inset: 14% 8%;
  border: 2px solid rgba(238,125,7,0.85);
  border-radius: 12px;
  pointer-events: none;
  box-shadow: 0 0 0 9999px rgba(0,0,0,0.35) inset;
}
.barcode-torch {
  position: absolute;
  right: 10px; top: 10px;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: rgba(0,0,0,0.5);
  border: 1px solid rgba(255,255,255,0.3);
  color: #fff;
  cursor: pointer;
}
.barcode-torch.is-on { background: rgba(238,125,7,0.85); color: #fff; }

.barcode-status {
  color: #ddd;
  font-size: 0.85rem;
  text-align: center;
  margin: 0 0 0.6rem;
}
.barcode-status[hidden] { display: none; }

.barcode-manual {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.82rem;
  color: #888;
  margin-bottom: 0.6rem;
}
.barcode-manual input {
  flex: 1; min-width: 0;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  border-radius: 8px;
  padding: 0.4rem 0.6rem;
  font: inherit;
  color-scheme: dark;
}

.barcode-result { padding-top: 0.3rem; }
.barcode-product-head {
  display: flex; gap: 0.7rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 0.7rem;
  margin-bottom: 0.7rem;
}
.barcode-product-img {
  width: 64px; height: 64px;
  border-radius: 8px;
  object-fit: cover;
  background: #fff;
  flex: 0 0 auto;
}
.barcode-product-text { flex: 1; min-width: 0; }
.barcode-product-name { color: #fff; font-weight: 600; font-size: 0.95rem; }
.barcode-product-marke { color: #aaa; font-size: 0.8rem; margin-top: 2px; }
.barcode-product-pills { margin-top: 0.35rem; display: flex; gap: 0.3rem; flex-wrap: wrap; }
.barcode-product-meta { color: #ee7d07; font-size: 0.78rem; margin-top: 0.4rem; font-variant-numeric: tabular-nums; }

/* Lebensmittel-Bild-Bubble (Tagesplan + Einkaufsliste) */
.lm-thumb {
  flex: 0 0 auto;
  width: 36px; height: 36px;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.lm-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lm-thumb-fallback {
  background: rgba(238,125,7,0.12);
  color: #ee7d07;
  font-size: 0.95rem;
}

/* Marke als kleiner heller Prefix vor der Bezeichnung */
.lm-brand {
  color: #c9c9c9;
  font-weight: 500;
  margin-right: 0.25rem;
}
.lm-brand::after { content: " · "; color: #6e6e6e; }

/* Score-Pills (Nutri-Score A-E, NOVA 1-4) */
.lm-pills-inline {
  display: inline-flex;
  gap: 0.25rem;
  margin-left: 0.4rem;
  vertical-align: middle;
}
.lm-pill {
  display: inline-block;
  font-size: 0.66rem;
  font-weight: 700;
  line-height: 1;
  padding: 0.22rem 0.4rem;
  border-radius: 999px;
  color: #fff;
  letter-spacing: 0.02em;
}
.lm-pill-nutri-a { background: #038141; }
.lm-pill-nutri-b { background: #85bb2f; }
.lm-pill-nutri-c { background: #fecb02; color: #2a2a2a; }
.lm-pill-nutri-d { background: #ee8100; }
.lm-pill-nutri-e { background: #e63e11; }
.lm-pill-nova { background: rgba(255,255,255,0.10); color: #ddd; }
.lm-pill-nova-1 { background: #0aa66f; }
.lm-pill-nova-2 { background: #7eaa3c; }
.lm-pill-nova-3 { background: #e98c1c; }
.lm-pill-nova-4 { background: #c0352c; }

/* Eco-Score (Umweltbilanz) — gruen->rot Skala, leicht abgesetzt mit Praefix */
.lm-pill-eco { padding-left: 0.5rem; }
.lm-pill-eco-a { background: #1a7a3a; }
.lm-pill-eco-b { background: #5fa84a; }
.lm-pill-eco-c { background: #d5b81f; color: #2a2a2a; }
.lm-pill-eco-d { background: #d57a1c; }
.lm-pill-eco-e { background: #c03c2c; }

/* Produkt-Info-Section (Snack-Edit-Modal + Standalone Info-Modal) */
.lm-info {
  margin-top: 0.9rem;
  padding-top: 0.8rem;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.lm-info-title {
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
  color: #ddd;
  font-weight: 600;
}
.lm-info-title i { color: #ee7d07; margin-right: 0.35rem; }
.lm-info-pills {
  display: flex;
  gap: 0.3rem;
  flex-wrap: wrap;
  margin-bottom: 0.5rem;
}
.lm-info-list {
  margin: 0;
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 0.35rem 0.7rem;
  font-size: 0.85rem;
}
.lm-info-list dt {
  color: #c0c0c0;
  font-weight: 500;
  white-space: nowrap;
}
.lm-info-list dt i { color: #ee7d07; margin-right: 0.3rem; }
.lm-info-list dd { margin: 0; color: #eee; word-break: break-word; }
.lm-info-empty { color: #888; font-style: italic; }

/* Tag-Badges fuer Allergene und Zusatzstoffe */
.lm-tag {
  display: inline-block;
  font-size: 0.72rem;
  padding: 0.18rem 0.45rem;
  border-radius: 999px;
  margin: 0 0.25rem 0.2rem 0;
  background: rgba(255,255,255,0.08);
  color: #ddd;
}
.lm-tag-allergen {
  background: rgba(238,125,7,0.18);
  color: #ffb86a;
  border: 1px solid rgba(238,125,7,0.35);
}
.lm-tag-additive {
  background: rgba(120,120,180,0.18);
  color: #b8b8e6;
  border: 1px solid rgba(120,120,180,0.35);
  font-variant: small-caps;
}

/* Info-Icon in Einkauf-Items */
.einkauf-info {
  background: transparent;
  border: 0;
  color: #888;
  padding: 0.3rem 0.4rem;
  font-size: 0.95rem;
  cursor: pointer;
  flex: 0 0 auto;
  transition: color 0.15s;
}
.einkauf-info:hover { color: #ee7d07; }

.barcode-unknown {
  display: flex; align-items: flex-start; gap: 0.5rem;
  background: rgba(238,125,7,0.10);
  border: 1px solid rgba(238,125,7,0.25);
  border-radius: 10px;
  padding: 0.6rem 0.75rem;
  margin-bottom: 0.7rem;
  font-size: 0.85rem;
}
.barcode-unknown i { color: #ee7d07; font-size: 1rem; margin-top: 1px; }

.barcode-form-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.4rem;
  margin-bottom: 0.5rem;
}
@media (min-width: 480px) {
  .barcode-form-row { grid-template-columns: repeat(4, 1fr); }
}
.barcode-field {
  display: flex; flex-direction: column; gap: 2px;
  font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.04em; color: #aaa;
}
.barcode-field input, .barcode-field select {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  border-radius: 8px;
  padding: 0.45rem 0.55rem;
  font: inherit; font-size: 0.95rem;
  color-scheme: dark;
  text-transform: none; letter-spacing: normal;
}
.barcode-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.5rem;
}

/* Scan-Buttons auf den jeweiligen Pages */
.tagesplan-add-row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.4rem;
}
.tagesplan-add-row .tagesplan-add-btn,
.tagesplan-add-row .tagesplan-scan-btn {
  flex: 1 1 160px;
  /* Damit btn-primary und btn-outline-light identisch hoch sind:
     gleiches font-size, gleiches line-height und gleiche box-sizing
     erzwingen. Bootstrap macht das eigentlich, aber unser eigenes
     btn-Override im wwwUser-Skin kann es verschieben. */
  font-size: 1rem;
  line-height: 1.5;
  padding: 0.5rem 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 44px;
}
.einkauf-scan-btn {
  margin-top: 0.6rem;
  width: 100%;
}

/* Einheitlicher dezenter Close-X fuer dunkle Modals (Snack-Suche, Barcode). */
.modal-close-x {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #ddd;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 1rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: background 0.15s ease, color 0.15s ease;
}
.modal-close-x:hover,
.modal-close-x:focus-visible {
  background: rgba(238, 125, 7, 0.18);
  color: #ee7d07;
  outline: none;
}


/* ============================================================
   Suche — Bar + Live-Dropdown (Kochbuch, Kategorie, Suche-Page)
   ============================================================ */
.suche-section {
  position: relative;
  margin-bottom: 0.8rem;
}
.suche-bar {
  position: relative;
  display: flex;
  align-items: center;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 999px;
  padding: 0 0.85rem;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.suche-bar:focus-within {
  background: rgba(255,255,255,0.09);
  border-color: rgba(238,125,7,0.5);
  box-shadow: 0 0 0 3px rgba(238,125,7,0.08);
}
.suche-icon { color: #aaa; flex: 0 0 auto; }
.suche-bar:focus-within .suche-icon { color: #ee7d07; }
.suche-input {
  flex: 1;
  background: transparent;
  border: 0;
  color: #fff;
  font: inherit;
  padding: 0.7rem 0.65rem;
  outline: none;
}
.suche-input::placeholder { color: #888; }
.suche-clear {
  background: transparent;
  border: 0;
  color: #888;
  padding: 6px;
  cursor: pointer;
  border-radius: 50%;
  display: inline-flex;
}
.suche-clear:hover { background: rgba(255,255,255,0.08); color: #fff; }

.suche-results {
  position: absolute;
  left: var(--bs-gutter-x-half, 0);
  right: var(--bs-gutter-x-half, 0);
  margin: 0.4rem 12px 0;
  background: rgba(20,20,22,0.95);
  -webkit-backdrop-filter: saturate(180%) blur(18px);
  backdrop-filter: saturate(180%) blur(18px);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 14px;
  box-shadow: 0 18px 40px rgba(0,0,0,0.5);
  z-index: 1020;
  max-height: 70vh;
  overflow-y: auto;
}
.suche-hits {
  list-style: none;
  margin: 0;
  padding: 0.3rem;
}
.suche-hit {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.45rem 0.55rem;
  border-radius: 10px;
  color: #fff;
  text-decoration: none;
}
.suche-hit:hover,
.suche-hit.is-active,
.suche-hit:focus {
  background: rgba(238,125,7,0.16);
}
.suche-hit-thumb {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  object-fit: cover;
  background: rgba(255,255,255,0.05);
  flex: 0 0 auto;
}
.suche-hit-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.suche-hit-title {
  color: #fff;
  font-weight: 500;
  font-size: 0.92rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.suche-hit-title mark {
  background: rgba(238,125,7,0.25);
  color: #ee7d07;
  padding: 0 2px;
  border-radius: 3px;
}
.suche-hit-meta {
  color: #aaa;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
}
.suche-hit-meta i { color: #ee7d07; margin-right: 0.2rem; font-size: 0.68rem; }
.suche-hit-dot { color: #555; margin: 0 0.3rem; }

.suche-all {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.6rem 0.8rem;
  color: #ee7d07;
  text-decoration: none;
  font-size: 0.85rem;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.suche-all:hover { background: rgba(238,125,7,0.10); color: #ee7d07; }

.suche-empty {
  padding: 0.8rem 1rem;
  color: #888;
  font-size: 0.88rem;
  text-align: center;
}


/* ============================================================
   /meine-bewertungen.php — Historie aller eigenen Bewertungen
   ============================================================ */
.bewertungen-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.55rem;
}
.bewertungen-row {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 0.55rem 0.7rem;
}
.bewertungen-thumb {
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  border-radius: 10px;
  overflow: hidden;
  background: rgba(255,255,255,0.05);
}
.bewertungen-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bewertungen-info { flex: 1; min-width: 0; }
.bewertungen-title {
  display: block;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bewertungen-title:hover { color: #ee7d07; }
.bewertungen-meta {
  color: #888;
  font-size: 0.78rem;
  margin-top: 0.15rem;
}
.bewertungen-meta i { color: #ee7d07; }
.bewertungen-meta-n { color: #888; }

.bewertungen-stars {
  display: flex;
  align-items: center;
  gap: 0.05rem;
  flex: 0 0 auto;
}
.bw-star {
  background: transparent;
  border: 0;
  padding: 4px 4px;
  cursor: pointer;
  font-size: 1.05rem;
  color: rgba(255,255,255,0.25);
  transition: transform 0.12s ease, color 0.12s ease;
  line-height: 1;
}
.bw-star.is-filled { color: #d2af37; }
.bw-star.is-hover  { color: #ee7d07; transform: scale(1.08); }
.bw-star:focus-visible { outline: 2px solid rgba(238,125,7,0.6); border-radius: 4px; }


/* Eigene Bewertung auf dem Rezept-Detail */
.rezept-myrating {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.rezept-star {
  background: transparent;
  border: 0;
  padding: 4px 6px;
  cursor: pointer;
  font-size: 1.7rem;
  color: rgba(255, 255, 255, 0.25);
  transition: transform 0.12s ease, color 0.12s ease;
  line-height: 1;
}
.rezept-star.is-filled { color: #d2af37; }
.rezept-star.is-hover  { color: #ee7d07; transform: scale(1.08); }
.rezept-star:focus-visible { outline: 2px solid rgba(238,125,7,0.6); border-radius: 6px; }
.rezept-myrating-hint {
  font-size: 0.78rem;
  color: #888;
  margin-left: 0.5rem;
}


/* ============================================================
   Plan-Bewertungen pro Rezept (rezept-plan-ratings)
   „Wer aus meinen Runden mag das?" — Gamification + Entscheidungs-
   hilfe. Ein Block je Abstimmung, Mitglieder als Avatar-Chips mit
   Sentiment-Farbe.
   ============================================================ */
.rezept-plan-ratings .rpr-plan {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 0.85rem 1rem;
  margin-bottom: 0.7rem;
}
.rezept-plan-ratings .rpr-plan:last-child { margin-bottom: 0; }
.rpr-plan-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}
.rpr-plan-name {
  font-weight: 600;
  color: #fff;
  font-size: 0.95rem;
}
.rpr-plan-avg {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.85rem;
  color: #ee7d07;
}
.rpr-plan-avg i { font-size: 0.78rem; }
.rpr-plan-avg small { color: #888; font-weight: 400; }
.rpr-plan-avg-empty { color: #888; font-style: italic; font-size: 0.78rem; }

.rpr-member-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.rpr-member {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.3rem 0.6rem 0.3rem 0.3rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.06);
  font-size: 0.82rem;
  color: #ddd;
}
.rpr-member.is-like    { background: rgba(78,194,122,0.16);  border-color: rgba(78,194,122,0.32); }
.rpr-member.is-neutral { background: rgba(244,193,74,0.14);  border-color: rgba(244,193,74,0.30); }
.rpr-member.is-dislike { background: rgba(196,68,68,0.16);   border-color: rgba(196,68,68,0.32); color: #e6a3a3; }
.rpr-member.is-empty   { opacity: 0.65; }

.rpr-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
  background: rgba(238,125,7,0.18);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.06);
  flex: 0 0 auto;
}
.rpr-avatar-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ee7d07;
  font-weight: 700;
  font-size: 0.72rem;
}
.rpr-name { font-weight: 500; }
.rpr-rating {
  display: inline-flex;
  align-items: center;
  gap: 0.18rem;
  font-weight: 600;
  font-size: 0.82rem;
}
.rpr-rating i { color: #ee7d07; font-size: 0.72rem; }
.rpr-member.is-like .rpr-rating i    { color: #6cdb95; }
.rpr-member.is-dislike .rpr-rating i { color: #e88787; }
.rpr-rating-empty { color: #666; font-weight: 400; }

.rpr-share {
  margin-top: 0.6rem;
  padding-top: 0.55rem;
  border-top: 1px dashed rgba(255,255,255,0.07);
  font-size: 0.78rem;
  color: #aaa;
  display: flex;
  gap: 0.4rem;
  align-items: flex-start;
}
.rpr-share i { color: #ee7d07; margin-top: 2px; }
.rpr-share-btn {
  background: rgba(238,125,7,0.12);
  border: 1px solid rgba(238,125,7,0.32);
  color: #ee7d07;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.72rem;
  cursor: pointer;
}
.rpr-share-btn:hover { background: rgba(238,125,7,0.22); }
.rpr-share-btn.is-done { background: rgba(78,194,122,0.18); border-color: rgba(78,194,122,0.4); color: #6cdb95; }


/* Zutaten als sauber gespacedte Liste */
.rezept-zutaten {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.rezept-zutaten li {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 0.7rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  color: #eee;
}
.rezept-zutaten li:last-child { border-bottom: none; }

.rezept-zutaten .z-menge {
  flex: 0 0 auto;
  min-width: 86px;
  font-weight: 600;
  color: #d2af37;
  white-space: nowrap;
}
.rezept-zutaten .z-name {
  flex: 1;
  color: #fff;
}
.rezept-zutaten .z-zubereitung {
  color: #aaa;
  font-style: italic;
  font-weight: 400;
}


/* Naehrwert-Grid */
.rezept-nutrition-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
@media (min-width: 480px) {
  .rezept-nutrition-grid { grid-template-columns: repeat(4, 1fr); }
}

.n-cell {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 14px;
  padding: 1rem 0.5rem;
  text-align: center;
}
.n-value {
  font-size: 1.45rem;
  font-weight: 700;
  color: #d2af37;
  line-height: 1;
}
.n-label {
  font-size: 0.75rem;
  color: #aaa;
  margin-top: 6px;
  letter-spacing: 0.01em;
}


/* Zubereitungs-Schritte als nummerierte Karten */
.rezept-steps {
  list-style: none;
  padding-left: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  counter-reset: step;
}

.rezept-step {
  display: flex;
  gap: 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  padding: 1rem 1.1rem;
}

.step-num {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #d2af37;
  color: #1a1a1d;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}

.step-text {
  flex: 1;
  color: #eee;
  line-height: 1.55;
  padding-top: 5px;
}
.step-text strong { color: #fff; }


/* ============================================================
   Hinzufuegen — Upload-Form + Analysier-Spinner
   ============================================================ */

.hinzu-form {
  max-width: 720px;
}

/* Drop-Zone-aehnliche Upload-Box: gross, tappbar, app-like. */
.upload-zone {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 1.25rem 1.5rem;
  background: rgba(255, 255, 255, 0.04);
  border: 2px dashed rgba(210, 175, 55, 0.45);
  border-radius: 18px;
  color: #fff;
  cursor: pointer;
  transition: background 200ms ease, border-color 200ms ease, transform 150ms ease;
  margin-bottom: 1rem;
  -webkit-tap-highlight-color: transparent;
}
.upload-zone:hover,
.upload-zone:focus-visible {
  background: rgba(210, 175, 55, 0.10);
  border-color: rgba(210, 175, 55, 0.8);
}
.upload-zone:active { transform: scale(0.99); }

/* Aktiver Drag-Over-Zustand — deutlicheres Feedback. */
.upload-zone.is-dragover {
  background: rgba(210, 175, 55, 0.18);
  border-color: rgba(210, 175, 55, 1);
  border-style: solid;
}
.upload-zone.is-dragover * { pointer-events: none; }

/* „oder hierher ziehen" nur auf groesseren Screens — Touch-User
   koennen ja nicht draggen. */
.upload-zone-or { color: #b8b8b8; font-weight: 400; }
@media (hover: none) and (pointer: coarse) {
  .upload-zone-or { display: none; }
}

.upload-zone-icon {
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(210, 175, 55, 0.18);
  color: #d2af37;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
}

.upload-zone-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.upload-zone-text strong {
  font-size: 1.05rem;
  font-weight: 700;
}
.upload-zone-text small {
  color: #b8b8b8;
  font-size: 0.82rem;
}

.upload-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 1rem;
}
.upload-preview-thumb {
  width: 90px;
  height: 90px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.upload-error {
  color: #ff8585;
  font-size: 0.9rem;
  margin-bottom: 1rem;
}

.hinzu-form .form-control {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
}
.hinzu-form .form-control:focus {
  border-color: rgba(210, 175, 55, 0.55);
  box-shadow: 0 0 0 3px rgba(210, 175, 55, 0.18);
  background: #1f1f22 !important;
}
.hinzu-form .form-floating label { color: #aaa; }
.hinzu-form .form-check-label { color: #ddd; font-size: 1.05rem; padding-left: 0.4rem; }


/* ============================================================
   Erfolgs-Journal (/journal.php) — dunkles Card, Hero, Streak,
   Quick-Entry, Achievements, Umfaenge, Tipps.
   ============================================================ */

.journal-detail {
  color: #fff;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.journal-card {
  position: relative;
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  padding: 1.25rem 1rem 2rem;
  flex: 1 0 auto;
}
@media (min-width: 768px) {
  .journal-card { padding: 2rem 2.25rem 3rem; }
}

/* --- Hero --- */
.journal-hero {
  background: linear-gradient(145deg, #101010 0%, rgba(238,125,7,0.05) 100%);
  border-radius: 18px;
  padding: 1.4rem 1.25rem;
  margin-bottom: 1.5rem;
}
/* Standalone-Variante: zentriert + max-width fuer Seiten ohne
   umschliessende .journal-card (z. B. Bewerten-Stack auf index.php). */
.journal-page-hero {
  max-width: 760px;
  margin: 1.25rem auto 1.5rem;
}
.journal-hero h1 {
  margin: 0 0 0.4rem;
  font-size: 1.75rem;
  font-weight: 700;
  color: #fff;
}
.journal-hero p {
  margin: 0;
  color: #c8c8c8;
  font-size: 0.95rem;
}
@media (min-width: 768px) {
  .journal-hero h1 { font-size: 2.2rem; }
}
.journal-hero-row {
  display: grid;
  gap: 1rem;
}
@media (min-width: 560px) {
  .journal-hero-row { grid-template-columns: 1fr auto; align-items: center; }
}

/* Tagesplan-Bilanz: Soll/Ist-Bars im Hero */
.tagesplan-bilanz {
  display: grid;
  gap: 0.55rem;
}
.tagesplan-bilanz-row { display: grid; gap: 0.2rem; }
.tagesplan-bilanz-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 0.85rem;
}
.tagesplan-bilanz-label { color: #aaa; }
.tagesplan-bilanz-value { color: #fff; font-variant-numeric: tabular-nums; }
.tagesplan-bilanz-value strong { font-size: 1rem; }
.tagesplan-bilanz-soll { color: #888; }
.tagesplan-bilanz-bar {
  height: 6px;
  background: rgba(255,255,255,0.06);
  border-radius: 3px;
  overflow: hidden;
}
.tagesplan-bilanz-bar-fill {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #ee7d07 0%, #f81f01 100%);
  border-radius: 3px;
  transition: width 0.4s ease;
}
.tagesplan-bilanz-row.is-over .tagesplan-bilanz-bar-fill {
  background: linear-gradient(90deg, #f81f01 0%, #c0352c 100%);
}
.tagesplan-bilanz-row.is-over .tagesplan-bilanz-value strong { color: #ffb3aa; }
.tagesplan-bilanz-cta {
  margin-top: 0.7rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: #ee7d07;
  text-decoration: none;
  padding: 0.5rem 0.7rem;
  background: rgba(238,125,7,0.08);
  border: 1px dashed rgba(238,125,7,0.4);
  border-radius: 8px;
}
.tagesplan-bilanz-cta span { flex: 1; }
.tagesplan-bilanz-cta:hover { background: rgba(238,125,7,0.15); color: #fff; }

/* Quick-Buttons unter dem Hauptbutton-Block */
.tagesplan-quick-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.5rem;
}
.tagesplan-quick-btn { font-size: 0.82rem; }
.tagesplan-quick-btn small { opacity: 0.7; margin-left: 0.2rem; }
.tagesplan-quick-btn.is-saved {
  background: rgba(40,167,69,0.18);
  border-color: rgba(40,167,69,0.45);
  color: #6ada87;
}

/* Vorlagen-Modal */
.vorlagen-hint { font-size: 0.85rem; margin-bottom: 0.8rem; }
.vorlagen-list { display: grid; gap: 0.45rem; }
.vorlagen-loading,
.vorlagen-empty {
  color: #888;
  text-align: center;
  padding: 1.2rem 0.5rem;
  font-style: italic;
}
.vorlagen-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 0.6rem 0.7rem;
}
.vorlagen-item-main { flex: 1; min-width: 0; }
.vorlagen-item-name { color: #fff; font-weight: 500; }
.vorlagen-item-meta { color: #888; font-size: 0.77rem; margin-top: 2px; }
.vorlage-apply { white-space: nowrap; flex: 0 0 auto; }
.vorlage-delete {
  background: transparent; border: 0; color: #888;
  padding: 0.4rem 0.5rem; cursor: pointer;
}
.vorlage-delete:hover { color: #f81f01; }

/* Profil: Tagesziele-Form */
.profil-ziele-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.6rem 0.8rem;
  margin-bottom: 0.8rem;
}
.profil-ziele-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.profil-ziele-field span {
  color: #ddd;
  font-size: 0.85rem;
  font-weight: 500;
}
.profil-ziele-field span small {
  color: #888;
  font-weight: 400;
  margin-left: 0.2rem;
}
.profil-ziele-field input {
  width: 100%;
  box-sizing: border-box;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  padding: 0.5rem 0.7rem;
  color: #fff;
  color-scheme: dark;
  font: inherit;
}
.profil-ziele-status {
  margin-left: 0.6rem;
  font-size: 0.85rem;
  color: #888;
}
.profil-ziele-status.is-ok { color: #6ada87; }
.journal-hero-label {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #aaa;
}
.journal-hero-value {
  font-size: 3.25rem;
  font-weight: 800;
  line-height: 1;
  color: #fff;
  margin-top: 0.25rem;
}
.journal-hero-value.journal-hero-empty { font-size: 1.1rem; font-weight: 400; }
.journal-hero-unit { font-size: 1.5rem; font-weight: 600; color: #ee7d07; margin-left: 4px; }
.journal-hero-delta {
  margin-top: 0.5rem;
  font-size: 0.95rem;
  color: #aaa;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.journal-hero-delta.is-positive { color: #4ec27a; }
.journal-hero-delta.is-negative { color: #ee7d07; }

.journal-hero-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.6rem;
  min-width: 0;
}
.journal-mini-stat {
  text-align: center;
  padding: 0.7rem 0.5rem;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  min-width: 0;
}
.journal-mini-value {
  font-size: 1.35rem;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.journal-mini-stat.is-positive .journal-mini-value { color: #4ec27a; }
.journal-mini-stat.is-negative .journal-mini-value { color: #ee7d07; }
.journal-mini-label {
  font-size: 0.7rem;
  color: #aaa;
  margin-top: 6px;
  line-height: 1.2;
}

/* --- Sections --- */
.journal-section {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 14px;
  padding: 1.1rem 1rem;
  margin-bottom: 1rem;
}
.journal-section > h2 {
  margin: 0 0 1rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.journal-section > h2 i { color: #ee7d07; }
.journal-section > h2 small { color: #aaa; font-weight: 400; font-size: 0.85rem; margin-left: 4px; }

/* Flash */
.journal-flash {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.7rem 1rem;
  border-radius: 10px;
  margin-bottom: 1rem;
  font-size: 0.9rem;
}
.journal-flash-ok  { background: rgba(78,194,122,0.12); border: 1px solid rgba(78,194,122,0.35); color: #b9e8c9; }
.journal-flash-err { background: rgba(248,31,1,0.12);  border: 1px solid rgba(248,31,1,0.35);  color: #fbbcb0; }

/* --- Chart --- */
.journal-chart-wrap {
  position: relative;
  width: 100%;
  height: 220px;
}
.journal-chart {
  width: 100%;
  height: 100%;
  display: block;
}
.journal-chart-empty {
  margin: 0;
  text-align: center;
  color: #888;
  font-size: 0.9rem;
  padding: 1.5rem 0;
}
.journal-chart-ymax,
.journal-chart-ymin {
  position: absolute;
  right: 6px;
  font-size: 0.7rem;
  color: #888;
  background: rgba(0,0,0,0.3);
  padding: 1px 6px;
  border-radius: 4px;
  pointer-events: none;
}
.journal-chart-ymax { top: 6px; }
.journal-chart-ymin { bottom: 6px; }

/* --- Quick-Entry --- */
.journal-quick-entry {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.journal-stepper {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin: 0.4rem 0 0.2rem;
}
.journal-stepper-btn {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.04);
  color: #fff;
  font-size: 1.6rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}
.journal-stepper-btn:hover,
.journal-stepper-btn:focus-visible { background: rgba(248,31,1,0.18); border-color: rgba(248,31,1,0.4); }
.journal-stepper-input {
  width: 140px;
  font-size: 2.5rem;
  font-weight: 700;
  text-align: center;
  background: transparent;
  border: none;
  color: #fff;
  outline: none;
}
.journal-stepper-input::-webkit-outer-spin-button,
.journal-stepper-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.journal-stepper-input[type=number] { -moz-appearance: textfield; }
.journal-stepper-unit {
  font-size: 0.9rem;
  color: #ee7d07;
  font-weight: 600;
  margin-bottom: 1rem;
  letter-spacing: 0.05em;
}
.journal-date-row {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 1rem;
  font-size: 0.9rem;
  color: #aaa;
}
.journal-date-row label { min-width: 60px; }
.journal-date-row input[type=date] {
  flex: 1;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  border-radius: 8px;
  padding: 0.55rem 0.7rem;
  font: inherit;
  color-scheme: dark;
}

/* --- Achievements --- */
.journal-achievements {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 0.6rem;
}
.journal-achievement {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  padding: 0.9rem 0.5rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 12px;
  text-align: center;
  opacity: 0.4;
  transition: opacity 0.2s, transform 0.2s;
}
.journal-achievement i {
  font-size: 1.8rem;
  color: #888;
}
.journal-achievement-label {
  font-size: 0.75rem;
  color: #aaa;
  line-height: 1.2;
}
.journal-achievement.is-unlocked {
  opacity: 1;
  background: linear-gradient(145deg, rgba(248,31,1,0.12) 0%, rgba(238,125,7,0.04) 100%);
  border-color: rgba(238,125,7,0.32);
}
.journal-achievement.is-unlocked i { color: #ee7d07; }
.journal-achievement.is-unlocked .journal-achievement-label { color: #fff; }

/* --- Collapsibles --- */
.journal-collapsible > summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0;
}
.journal-collapsible > summary::-webkit-details-marker { display: none; }
.journal-collapsible > summary h2 { margin: 0; }
.journal-collapsible-hint {
  font-size: 0.78rem;
  color: #888;
}
.journal-collapsible[open] > summary { margin-bottom: 1rem; }
.journal-collapsible[open] .journal-collapsible-hint::before { content: ''; }

/* --- Umfänge --- */
.journal-umf-last {
  margin: 0 0 0.6rem;
  color: #aaa;
  font-size: 0.85rem;
}
.journal-umf-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
  margin-bottom: 1.2rem;
}
@media (min-width: 480px) {
  .journal-umf-grid { grid-template-columns: repeat(4, 1fr); }
}
.journal-umf-cell {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 0.6rem 0.4rem;
  text-align: center;
}
.journal-umf-value {
  font-size: 1.1rem;
  font-weight: 700;
  color: #ee7d07;
}
.journal-umf-value span { font-size: 0.7rem; color: #aaa; font-weight: 400; margin-left: 2px; }
.journal-umf-label {
  font-size: 0.7rem;
  color: #aaa;
  margin-top: 2px;
}

.journal-umf-inputs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.6rem;
  margin-bottom: 1rem;
}
.journal-umf-input {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  padding: 0.45rem 0.6rem;
  font-size: 0.85rem;
}
.journal-umf-input span { flex: 1; color: #ddd; }
.journal-umf-input .journal-umf-suffix { flex: 0; color: #aaa; font-size: 0.75rem; }
.journal-umf-input input {
  width: 60px;
  background: transparent;
  border: none;
  color: #fff;
  text-align: right;
  font: inherit;
  outline: none;
}

/* --- Tipps --- */
.journal-tipps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.5rem;
}
.journal-tipps li {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.7rem 0.9rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
}
.journal-tipps li i {
  width: 28px;
  text-align: center;
  color: #ee7d07;
}


/* ============================================================
   Einkaufsliste (/einkauf.php) — nutzt das journal-card Layout
   (.journal-detail / .journal-card als Wrapper).
   ============================================================ */

/* Mitlister-Zeile direkt unter dem Hero */
.einkauf-members {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: -0.4rem 0 1rem;
}
.einkauf-members-avatars {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
}
.einkauf-member-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  background: rgba(238,125,7,0.18);
  box-shadow: 0 0 0 2px #1a1a1d;
  margin-left: -8px;
  flex: 0 0 auto;
}
.einkauf-member-avatar:first-child { margin-left: 0; }
.einkauf-member-avatar.is-self { box-shadow: 0 0 0 2px #ee7d07; }
.einkauf-member-avatar-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ee7d07;
  font-weight: 700;
  font-size: 0.78rem;
}
.einkauf-members-cog {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  color: #ddd;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  transition: background 0.15s ease, color 0.15s ease;
}
.einkauf-members-cog:hover { background: rgba(238,125,7,0.18); color: #ee7d07; }

/* Modal */
.einkauf-share-modal {
  position: fixed;
  inset: 0;
  z-index: 1080;
  background: rgba(0,0,0,0.65);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.einkauf-share-modal[hidden] { display: none; }
.einkauf-share-inner {
  width: 100%;
  max-width: 480px;
  max-height: 85vh;
  overflow-y: auto;
  background: #1a1a1d;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 16px;
  padding: 1.1rem 1.1rem 1.3rem;
}
.einkauf-share-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.8rem;
}
.einkauf-share-head h2 {
  margin: 0;
  font-size: 1.05rem;
  color: #fff;
}
.einkauf-share-section { margin-bottom: 1.1rem; }
.einkauf-share-section h3 {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #888;
  margin: 0 0 0.5rem;
}
.einkauf-share-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.45rem; }
.einkauf-share-row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 0.45rem 0.65rem;
}
.einkauf-share-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  background: rgba(238,125,7,0.18);
  flex: 0 0 auto;
}
.einkauf-share-name { flex: 1; min-width: 0; color: #fff; font-weight: 500; font-size: 0.9rem; }
.einkauf-share-name small { color: #888; font-weight: 400; margin-left: 0.3rem; }
.einkauf-share-add-form { display: flex; gap: 0.45rem; }
.einkauf-share-add-form select {
  flex: 1;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  border-radius: 8px;
  padding: 0.5rem 0.7rem;
  font: inherit;
  color-scheme: dark;
}
.einkauf-share-hint { font-size: 0.78rem; color: #888; margin: 0.5rem 0 0; }
.einkauf-share-hint i { color: #ee7d07; margin-right: 0.3rem; }


.einkauf-hero-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.4rem;
  min-width: 0;
}
.einkauf-hero-hint {
  font-size: 0.75rem;
  color: #aaa;
  text-align: right;
  max-width: 220px;
  line-height: 1.3;
}

.einkauf-group {
  margin-bottom: 1.2rem;
}
.einkauf-group-title {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #aaa;
  margin: 0 0 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.einkauf-group-title i { color: #ee7d07; font-size: 0.9rem; }

.einkauf-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.3rem;
}

.einkauf-item {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 0.55rem 0.7rem;
  transition: background 0.15s, opacity 0.2s, transform 0.2s;
}
.einkauf-item:hover { background: rgba(255,255,255,0.06); }

.einkauf-check {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(255,255,255,0.04);
  color: #fff;
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-tap-highlight-color: transparent;
}
.einkauf-check:hover { border-color: #ee7d07; }

.einkauf-item-body {
  flex: 1;
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  min-width: 0;
}
.einkauf-item-menge {
  color: #ee7d07;
  font-weight: 600;
  font-size: 0.9rem;
  white-space: nowrap;
  min-width: 70px;
}
.einkauf-item-name {
  color: #fff;
  font-weight: 500;
  word-break: break-word;
}
.einkauf-item-quelle {
  margin-left: auto;
  color: #888;
  font-size: 0.8rem;
}
.einkauf-item-quelle:hover { color: #ee7d07; }

.einkauf-remove {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  background: transparent;
  color: #666;
  border: none;
  cursor: pointer;
  font-size: 0.9rem;
  border-radius: 4px;
}
.einkauf-remove:hover { color: #f81f01; background: rgba(248,31,1,0.08); }

.einkauf-item.is-done {
  opacity: 0.55;
}
.einkauf-item.is-done .einkauf-item-name {
  text-decoration: line-through;
  color: #888;
}
.einkauf-item.is-done .einkauf-check {
  background: rgba(238,125,7,0.15);
  border-color: rgba(238,125,7,0.4);
  color: #ee7d07;
}

.einkauf-empty {
  text-align: center;
  padding: 2.5rem 1rem;
}
.einkauf-empty i { font-size: 3rem; color: #444; margin-bottom: 1rem; display: block; }
.einkauf-empty h2 { color: #888; margin: 0 0 0.4rem; }
.einkauf-empty p  { color: #666; font-size: 0.92rem; max-width: 24rem; margin: 0 auto; }

/* Quick-Add */
.einkauf-add-form {
  display: grid;
  grid-template-columns: 1fr 80px 90px 50px;
  gap: 0.4rem;
}
@media (max-width: 480px) {
  .einkauf-add-form {
    grid-template-columns: 1fr 1fr 50px;
  }
  .einkauf-add-name { grid-column: 1 / -1; }
}
.einkauf-add-form input,
.einkauf-add-form select {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  border-radius: 8px;
  padding: 0.55rem 0.7rem;
  font: inherit;
  color-scheme: dark;
  min-width: 0;
}
.einkauf-add-form button {
  padding: 0.5rem 0;
}

.einkauf-done-wrap .einkauf-list-done { margin-bottom: 0.6rem; }


/* ============================================================
   Tagesplan (/liste.php)
   ============================================================ */

.tagesplan-switcher {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  margin-bottom: 1.2rem;
  padding: 0.5rem 0.4rem;
}
.tagesplan-switch-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  flex: 0 0 auto;
}
.tagesplan-switch-btn:hover { background: rgba(238,125,7,0.15); color: #fff; }
.tagesplan-switch-label {
  text-align: center;
  flex: 1;
  min-width: 0;
}
.tagesplan-switch-main {
  font-size: 1.4rem;
  font-weight: 700;
  color: #fff;
}
.tagesplan-switch-sub {
  font-size: 0.78rem;
  color: #888;
  margin-top: 2px;
}
.tagesplan-back-today {
  display: inline-block;
  margin-top: 4px;
  font-size: 0.78rem;
  color: #ee7d07;
}

.tagesplan-hero { margin-bottom: 1rem; }

/* Wieg-Reminder */
.tagesplan-reminder {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  background: linear-gradient(145deg, rgba(248,31,1,0.15) 0%, rgba(238,125,7,0.05) 100%);
  border: 1px solid rgba(248,31,1,0.32);
  border-radius: 14px;
  padding: 0.85rem 1rem;
  margin-bottom: 1rem;
  color: #fff;
  text-decoration: none;
  transition: background 0.15s;
}
.tagesplan-reminder:hover { background: linear-gradient(145deg, rgba(248,31,1,0.22) 0%, rgba(238,125,7,0.08) 100%); color: #fff; }
.tagesplan-reminder > i:first-child {
  font-size: 1.4rem;
  color: #ee7d07;
  flex: 0 0 auto;
}
.tagesplan-reminder-text { flex: 1; min-width: 0; }
.tagesplan-reminder-text strong { display: block; }
.tagesplan-reminder-text small { color: #aaa; font-size: 0.82rem; }

/* Section-Header mit optionalem Link rechts */
.tagesplan-section h2 a.tagesplan-section-link {
  font-size: 0.78rem;
  color: #ee7d07;
  margin-left: auto;
  text-decoration: none;
  font-weight: 400;
}
.tagesplan-section h2 a.tagesplan-section-link:hover { color: #f81f01; }

/* Liste */
.tagesplan-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.35rem;
}
.tagesplan-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 0.5rem 0.7rem 0.5rem 0.5rem;
  transition: opacity 0.2s;
}
.tagesplan-item-main {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  flex: 1;
  color: #fff;
  text-decoration: none;
  min-width: 0;
  /* falls als <button> gerendert (Snack-Edit-Trigger) — Browser-Defaults
     wegnehmen, damit's wie der <a> oder <div> davor aussieht. */
  background: transparent;
  border: 0;
  padding: 0;
  text-align: left;
  font: inherit;
  cursor: pointer;
}
.snack-edit-actions {
  display: flex;
  gap: 0.4rem;
  margin-top: 0.5rem;
  flex-wrap: wrap;
}
.snack-edit-hint {
  font-size: 0.78rem;
  color: #888;
  margin: 0 0 0.3rem;
}
.snack-edit-hint i { color: #ee7d07; margin-right: 0.3rem; }
.tagesplan-item-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(238,125,7,0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ee7d07;
  font-size: 0.85rem;
  flex: 0 0 auto;
}
.tagesplan-item-image {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(255,255,255,0.05) center/cover no-repeat;
  flex: 0 0 auto;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.06);
}
.tagesplan-item-name {
  flex: 1;
  font-weight: 500;
  color: #fff;
  min-width: 0;
}
.tagesplan-item-meta {
  font-size: 0.78rem;
  color: #aaa;
  white-space: nowrap;
}
.tagesplan-remove {
  background: transparent;
  border: none;
  color: #666;
  cursor: pointer;
  width: 28px;
  height: 28px;
  border-radius: 4px;
}
.tagesplan-remove:hover { color: #f81f01; background: rgba(248,31,1,0.08); }

.tagesplan-check {
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  color: #888;
  font-size: 1.5rem;
  cursor: pointer;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 0.15rem;
}
.tagesplan-check:hover { color: #ee7d07; }
.tagesplan-item.is-done .tagesplan-check { color: #4ec27a; }
.tagesplan-item.is-done .tagesplan-item-name { color: #888; text-decoration: line-through; }
.tagesplan-item.is-done { opacity: 0.65; }

.tagesplan-empty {
  text-align: center;
  color: #888;
  font-size: 0.88rem;
  padding: 1rem 0;
  margin: 0;
}
.tagesplan-empty a { color: #ee7d07; }

.tagesplan-add-btn {
  margin-top: 0.8rem;
  width: 100%;
}

/* Snack-Modal */
.tagesplan-modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  z-index: 200;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 1rem;
  padding-top: 4rem;
  overflow-y: auto;
}
.tagesplan-modal[hidden] { display: none; }
.tagesplan-modal-inner {
  background: #1f1f22;
  border-radius: 14px;
  width: 100%;
  max-width: 560px;
  padding: 1.2rem 1.2rem 1.4rem;
}
.tagesplan-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.8rem;
}
.tagesplan-modal-head h2 { margin: 0; font-size: 1.1rem; color: #fff; }
.tagesplan-modal-head i { color: #ee7d07; margin-right: 0.4rem; }

.tagesplan-modal-search {
  width: 100%;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  color: #fff;
  border-radius: 8px;
  padding: 0.6rem 0.8rem;
  font: inherit;
}
.tagesplan-modal-results {
  margin-top: 0.6rem;
  display: grid;
  gap: 0.35rem;
  max-height: 280px;
  overflow-y: auto;
}
.tagesplan-result {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  padding: 0.55rem 0.7rem;
  cursor: pointer;
  color: #fff;
  text-align: left;
  font: inherit;
}
.tagesplan-result:hover { background: rgba(238,125,7,0.12); border-color: rgba(238,125,7,0.4); }
.tagesplan-result-name { color: #fff; font-size: 0.92rem; }
.tagesplan-result-name small { color: #aaa; font-weight: 400; }
.tagesplan-result-meta { font-size: 0.72rem; color: #888; margin-top: 2px; }

/* Makro-Pills im Suchergebnis ----------------------------- */
.tagesplan-result-macros {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  margin-top: 0.35rem;
  font-size: 0.74rem;
  color: #ccc;
  font-variant-numeric: tabular-nums;
}
.tagesplan-result-macros .macro-kcal {
  color: #ee7d07;
  font-weight: 600;
}
.tagesplan-result-macros .macro-p,
.tagesplan-result-macros .macro-kh,
.tagesplan-result-macros .macro-f {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  color: #ddd;
}
.tagesplan-result-macros .macro-p i,
.tagesplan-result-macros .macro-kh i,
.tagesplan-result-macros .macro-f i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
.tagesplan-result-macros .macro-p i  { background: #4ec27a; }
.tagesplan-result-macros .macro-kh i { background: #f4c14a; }
.tagesplan-result-macros .macro-f i  { background: #ee7d07; }
.tagesplan-result-macros .macro-base {
  color: #666;
  font-size: 0.7rem;
  margin-left: auto;
}

/* Anteils-Balken P/KH/F ----------------------------------- */
.tagesplan-result-bar {
  display: flex;
  height: 5px;
  border-radius: 4px;
  overflow: hidden;
  margin-top: 0.45rem;
  background: rgba(255,255,255,0.05);
}
.tagesplan-result-bar > span { height: 100%; }
.tagesplan-result-bar .bar-protein { background: #4ec27a; }
.tagesplan-result-bar .bar-kh      { background: #f4c14a; }
.tagesplan-result-bar .bar-fett    { background: #ee7d07; }

.tagesplan-result-extra {
  font-size: 0.7rem;
  color: #888;
  margin-top: 0.35rem;
}

.tagesplan-modal-divider {
  text-align: center;
  margin: 1rem 0 0.6rem;
  color: #666;
  font-size: 0.78rem;
}

.tagesplan-manual-form {
  display: grid;
  gap: 0.5rem;
}
.tagesplan-manual-form input,
.tagesplan-manual-form select {
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  border-radius: 8px;
  padding: 0.5rem 0.7rem;
  font: inherit;
  color-scheme: dark;
}
.tagesplan-manual-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.4rem;
}
/* 4-Spalten-Variante bewusst raus — in dem 560px-Modal werden 4 Felder
   zu schmal, das war auf 480+px viel zu eng. 2 Spalten passen auf allen
   Geraeten. */

.tagesplan-result-header {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #888;
  margin: 0.6rem 0 0.2rem;
}
.tagesplan-result-header:first-child { margin-top: 0; }


/* Schmaler Wisch-Hinweis im Bewerten-Viewport (index.php) — sitzt
   absolut oben, damit der Swipe-Stack vertikal nicht runtergedrueckt
   wird, und braucht nur eine Zeile. */
.bewerten-hint-thin {
  position: absolute;
  top: 0.4rem;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.75rem;
  color: rgba(255,255,255,0.6);
  letter-spacing: 0.01em;
  white-space: nowrap;
  pointer-events: none;
}
.bewerten-hint-thin i { color: #d2af37; font-size: 0.85rem; }
.bewerten-hint-dot { color: rgba(255,255,255,0.25); }


/* ============================================================
   Supplements-Katalog (/supplements.php)
   ============================================================ */

.supplements-hero .supplements-back {
  align-self: center;
  font-size: 0.9rem;
}
.supplements-intro {
  background: rgba(238,125,7,0.06);
  border: 1px solid rgba(238,125,7,0.18);
  border-radius: 10px;
  padding: 0.7rem 0.9rem;
  font-size: 0.85rem;
  color: #ccc;
  margin-bottom: 1.5rem;
}
.supplements-intro strong { color: #ee7d07; }

.supplements-group {
  margin-bottom: 1.5rem;
}
.supplements-group-title {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #aaa;
  margin: 0 0 0.6rem;
}
.supplements-group-title small { color: #666; font-weight: 400; }

.supplements-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.6rem;
}
@media (min-width: 600px) {
  .supplements-cards { grid-template-columns: 1fr 1fr; }
}

.supplements-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 0.9rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.supplements-card.is-in-list {
  background: linear-gradient(145deg, rgba(238,125,7,0.10) 0%, rgba(248,31,1,0.04) 100%);
  border-color: rgba(238,125,7,0.35);
}
.supplements-card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
}
.supplements-card h3 {
  margin: 0;
  font-size: 1rem;
  color: #fff;
}
.supplements-card-dose {
  font-size: 0.78rem;
  color: #ee7d07;
  white-space: nowrap;
}
.supplements-card-desc {
  margin: 0;
  font-size: 0.82rem;
  color: #bbb;
  line-height: 1.45;
}
.supplements-card .supplements-toggle {
  margin-top: 0.3rem;
}

/* Dosierungs-Panel pro Karte ---------------------------------- */
.supplements-dose-edit {
  margin-top: 0.4rem;
  background: rgba(0,0,0,0.18);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.18s ease, background 0.18s ease;
}
.supplements-dose-edit[open] {
  background: rgba(0,0,0,0.28);
  border-color: rgba(238,125,7,0.35);
}
.supplements-dose-edit > summary {
  cursor: pointer;
  list-style: none;
  padding: 0.6rem 0.85rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  font-size: 0.85rem;
  color: #ddd;
}
.supplements-dose-edit > summary::-webkit-details-marker { display: none; }
.supplements-dose-edit > summary::after {
  content: "\f078"; /* chevron-down */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 0.7rem;
  color: #888;
  transition: transform 0.18s ease;
}
.supplements-dose-edit[open] > summary::after { transform: rotate(180deg); }
.supplements-dose-summary-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #ee7d07;
  font-weight: 500;
}
.supplements-dose-summary-chip {
  font-size: 0.78rem;
  color: #aaa;
  text-align: right;
  flex: 1;
  margin-right: 0.4rem;
}

.supplements-dose-form {
  padding: 0.2rem 0.85rem 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}
.supplements-dose-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.supplements-dose-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #999;
}
.supplements-dose-input-group {
  display: flex;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.supplements-dose-input-group:focus-within {
  border-color: rgba(238,125,7,0.55);
  background: rgba(255,255,255,0.06);
}
.supplements-dose-input-group input[type=number] {
  flex: 1;
  min-width: 0;
  background: transparent;
  border: 0;
  color: #fff;
  padding: 0.55rem 0.75rem;
  font: inherit;
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
  -moz-appearance: textfield;
}
.supplements-dose-input-group input[type=number]::-webkit-outer-spin-button,
.supplements-dose-input-group input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.supplements-dose-input-group input:focus { outline: none; }
.supplements-dose-unit {
  appearance: none;
  -webkit-appearance: none;
  background: rgba(238,125,7,0.12);
  border: 0;
  border-left: 1px solid rgba(255,255,255,0.08);
  color: #ee7d07;
  font: inherit;
  font-weight: 600;
  padding: 0 1.7rem 0 0.8rem;
  cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23ee7d07' d='M0 0l5 6 5-6z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 0.6rem center;
}
.supplements-dose-unit:focus { outline: none; }

.supplements-dose-schedule {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 10px;
  color: #fff;
  font: inherit;
  padding: 0.55rem 2rem 0.55rem 0.75rem;
  cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23aaaaaa' d='M0 0l5 6 5-6z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
.supplements-dose-schedule:focus {
  outline: none;
  border-color: rgba(238,125,7,0.55);
  background-color: rgba(255,255,255,0.06);
}
.supplements-dose-save {
  align-self: flex-end;
  font-size: 0.85rem;
  padding: 0.45rem 1rem;
}

.supplements-custom {
  margin-top: 0.6rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 0.7rem 0.9rem;
}
.supplements-custom > summary {
  cursor: pointer;
  list-style: none;
  color: #ee7d07;
  font-weight: 500;
}
.supplements-custom > summary::-webkit-details-marker { display: none; }
.supplements-custom-form {
  display: grid;
  gap: 0.5rem;
  margin-top: 0.7rem;
}
.supplements-custom-form input,
.supplements-custom-form textarea {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  border-radius: 8px;
  padding: 0.5rem 0.7rem;
  font: inherit;
}
.supplements-custom-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.4rem;
}
@media (min-width: 480px) {
  .supplements-custom-row { grid-template-columns: repeat(4, 1fr); }
}

/* Etwas groesserer Switch — Bootstrap-Default ist auf Mobile zu winzig. */
.hinzu-form .form-switch .form-check-input {
  width: 3rem;
  height: 1.6rem;
  margin-top: 0.15rem;
  cursor: pointer;
}
.hinzu-form .btn-primary {
  border-radius: 14px;
  font-weight: 600;
}


/* CTA-Override — ueberschreibt Bootstrap-Blau (#1b6cc1) durch einen
   warmen Rot-Orange-Verlauf von Ecke zu Ecke (145deg). Greift fuer
   alle .btn-primary auf ich.werde-jetzt-fit.de. */
.btn-primary,
.btn-primary:visited {
  background: #f81f01;
  background: -moz-radial-gradient(circle, #f81f01 0%, #ee7d07 100%);
  background: -webkit-radial-gradient(circle, #f81f01 0%, #ee7d07 100%);
  background: linear-gradient(145deg, #f81f01 0%, #ee7d07 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#f81f01",endColorstr="#ee7d07",GradientType=1);
  border: 0;
  color: #fff;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:focus-visible,
.btn-primary:active,
.btn-primary.active {
  background: #d4180a;
  background: -moz-radial-gradient(circle, #d4180a 0%, #c66805 100%);
  background: -webkit-radial-gradient(circle, #d4180a 0%, #c66805 100%);
  background: linear-gradient(145deg, #d4180a 0%, #c66805 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#d4180a",endColorstr="#c66805",GradientType=1);
  border: 0;
  color: #fff;
  box-shadow: 0 0 0 0.2rem rgba(248, 31, 1, 0.25);
}
.btn-primary:disabled,
.btn-primary.disabled {
  background: #f81f01;
  background: -moz-radial-gradient(circle, #f81f01 0%, #ee7d07 100%);
  background: -webkit-radial-gradient(circle, #f81f01 0%, #ee7d07 100%);
  background: linear-gradient(145deg, #f81f01 0%, #ee7d07 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#f81f01",endColorstr="#ee7d07",GradientType=1);
  border: 0;
  opacity: 0.55;
}


/* ----- Analysier-Warteraum (analyseAuswertung.php) ----- */

.hinzu-analyzing {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem 3rem;
  text-align: center;
}

.hinzu-spinner {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(210, 175, 55, 0.12);
  color: #d2af37;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  margin-bottom: 1.25rem;
}

.hinzu-status {
  color: #fff;
  font-size: 1.05rem;
  font-weight: 600;
  margin: 0 0 0.4rem;
  min-height: 1.4em;
  transition: opacity 250ms ease;
}

.hinzu-hint {
  color: #999;
  font-size: 0.85rem;
  margin: 0;
}

/* ----------------------------------------------------------------------
   Mahlzeit-Chip im Hero (gold, hebt sich von Kategorien ab) +
   Diet-Tag-Reihe + Allergen-Hinweis (Rezept-Detailseite).
   ---------------------------------------------------------------------- */

.rezept-cat-chip-mahlzeit {
  background: rgba(210, 175, 55, 0.85);
  border-color: rgba(210, 175, 55, 0.4);
  color: #1a1a1a;
  font-weight: 600;
}

.rezept-diet-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 1.25rem;
}

/* Tag-Farbe kommt pro Instanz aus DB als --tag-color (rezeptTags.tagFarbe).
   color-mix erzeugt 13% Hintergrund + 28% Border-Tint aus dieser einen Farbe,
   damit jeder Tag ohne CSS-Variante eigenständig wirkt. */
.rezept-diet-tag {
  --tag-color: #5e9c5e;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  background: color-mix(in srgb, var(--tag-color) 13%, #fff);
  color: var(--tag-color);
  border: 1px solid color-mix(in srgb, var(--tag-color) 28%, #fff);
  border-radius: 9999px;
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.2;
}
.rezept-diet-tag i { font-size: 0.7rem; }

.rezept-allergens {
  /* Wie .n-cell — dunkle „Glas"-Kachel mit warmem Warnung-Akzent. */
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 14px;
  padding: 16px 18px !important;
}
.rezept-allergens h2 {
  color: #d2af37 !important;
}
.rezept-allergens h2 i {
  color: #d2af37 !important;
}
.rezept-allergen-list {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.rezept-allergen-list li {
  background: rgba(210, 175, 55, 0.12);
  border: 1px solid rgba(210, 175, 55, 0.32);
  color: #f0d27a;
  padding: 4px 12px;
  border-radius: 9999px;
  font-size: 0.85rem;
  font-weight: 500;
}
.rezept-allergen-note {
  margin: 0;
  font-size: 0.78rem;
  color: #aaa;
  font-style: italic;
}

/* KI-Beschreibung des Rezepts (beschreibungGpt) — Lead-Text oberhalb
   der Zutaten, soll wie ein redaktioneller Intro wirken. */
.rezept-beschreibung {
  background: transparent;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.rezept-beschreibung p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.6;
  color: #c5c5c8;
  font-style: italic;
}

/* Insight-Note ("Hinweise zur Zubereitung", bemerkungGpt) — sachlicher
   als die Longevity/Abnehmen-Insights, weniger gross/laut. Etwas
   subtiler als die anderen Sektionen (duennere Border, weniger
   Akzent), damit der Hinweis nicht wie ein 2. Hauptinhalt wirkt. */
.rezept-insight-note {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  padding: 1rem 1.1rem;
}
.rezept-insight-note h2 {
  color: #d2af37 !important;
  font-size: 1rem !important;
}
.rezept-insight-note h2 i {
  color: #d2af37 !important;
}
.rezept-insight-note .rezept-insight-text {
  color: #c5c5c8;
}

/* Tageszeit-Slider — der oberste, dynamisch nach Uhrzeit (Frühstück
   morgens, Mittag mittags, …). Etwas mehr Praesenz als die anderen. */
.tageszeit-section .rs-section-title {
  font-size: 1.55rem;
  background: linear-gradient(135deg, #d2af37 0%, #b88f1e 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.tageszeit-section .rs-section-title .rs-section-icon {
  -webkit-text-fill-color: #d2af37;
  color: #d2af37;
}

/* === Mein Tag / Meine Woche / Tier-Teaser =========================== */

.mein-tag-card,
.meine-woche-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 1rem 1rem 1.2rem;
  margin-bottom: 1rem;
}
.mein-tag-card > h2,
.meine-woche-card > h2 {
  margin: 0 0 0.7rem;
  font-size: 1rem;
  color: #ddd;
  font-weight: 600;
}
.mein-tag-card > h2 i,
.meine-woche-card > h2 i { color: #ee7d07; margin-right: 0.4rem; }

/* Hero-Block Mein Tag */
.mein-tag-totale {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
.mein-tag-totale-zahl { flex: 1; min-width: 140px; }
.mein-tag-totale-value {
  font-size: 2.3rem;
  font-weight: 700;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.mein-tag-totale-unit { color: #aaa; font-size: 0.95rem; }
.mein-tag-totale-makros {
  display: flex;
  gap: 0.7rem;
  flex-wrap: wrap;
}
.mein-tag-makro {
  text-align: center;
  background: rgba(255,255,255,0.05);
  border-radius: 8px;
  padding: 0.5rem 0.7rem;
  min-width: 70px;
}
.mein-tag-makro strong {
  display: block;
  color: #fff;
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
}
.mein-tag-makro span { color: #888; font-size: 0.72rem; }

/* Makro-Verteilungsbalken */
.mein-tag-makrobalken {
  display: flex;
  height: 14px;
  border-radius: 7px;
  overflow: hidden;
  background: rgba(255,255,255,0.05);
}
.mein-tag-makrobalken span { display: block; height: 100%; }
.mein-tag-makrobalken-kh      { background: #4aa3ff; }
.mein-tag-makrobalken-fett    { background: #ee7d07; }
.mein-tag-makrobalken-protein { background: #66c97e; }
.mein-tag-makrolegende {
  display: flex;
  gap: 0.9rem;
  margin-top: 0.5rem;
  font-size: 0.78rem;
  color: #aaa;
}
.mein-tag-makrolegende .dot {
  display: inline-block;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  margin-right: 0.35rem;
  vertical-align: middle;
}
.dot-kh      { background: #4aa3ff; }
.dot-fett    { background: #ee7d07; }
.dot-protein { background: #66c97e; }

/* Top-Items-Liste */
.mein-tag-top-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.45rem; }
.mein-tag-top-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: rgba(255,255,255,0.03);
  border-radius: 8px;
  padding: 0.5rem 0.6rem;
}
.mein-tag-top-rank {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: rgba(238,125,7,0.15);
  color: #ee7d07;
  font-weight: 700;
  font-size: 0.78rem;
}
.mein-tag-top-main { flex: 1; min-width: 0; }
.mein-tag-top-name { color: #fff; font-size: 0.92rem; }
.mein-tag-top-meta { color: #888; font-size: 0.75rem; margin-top: 2px; }

/* Insights */
.mein-tag-insights { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.4rem; }
.mein-tag-insight {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.5rem 0.7rem;
  border-radius: 8px;
  border-left: 3px solid;
}
.mein-tag-insight strong { color: #fff; font-size: 0.9rem; }
.mein-tag-insight span   { color: #aaa; font-size: 0.8rem; }
.mein-tag-insight-good    { background: rgba(102,201,126,0.10); border-color: #66c97e; }
.mein-tag-insight-warn    { background: rgba(238,125,7,0.12);   border-color: #ee7d07; }
.mein-tag-insight-neutral { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.2); }

.mein-tag-hint {
  margin-top: 1.4rem;
  font-size: 0.85rem;
}

/* Meine Woche Hero */
.meine-woche-hero {
  display: grid;
  gap: 0.9rem;
  margin-bottom: 1rem;
}
.meine-woche-hero-value {
  font-size: 2.3rem;
  font-weight: 700;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.meine-woche-hero-unit { color: #aaa; font-size: 0.95rem; }
.meine-woche-hero-unit small { color: #777; font-size: 0.78rem; }
.meine-woche-hero-stats {
  display: flex;
  gap: 0.7rem;
  flex-wrap: wrap;
}
.meine-woche-hero-meta {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  color: #aaa;
  font-size: 0.85rem;
}
.meine-woche-hero-meta i { color: #ee7d07; margin-right: 0.3rem; }
.meine-woche-gewicht-delta small { color: #777; font-size: 0.75rem; margin-left: 0.2rem; }

.meine-woche-chart-wrap {
  position: relative;
  height: 200px;
}

/* Tier-Teaser-Banner */
.tier-teaser {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  background: linear-gradient(135deg, rgba(238,125,7,0.10) 0%, rgba(248,31,1,0.05) 100%);
  border: 1px solid rgba(238,125,7,0.30);
  border-radius: 12px;
  padding: 0.9rem 1rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.tier-teaser-pro    { border-color: rgba(238,125,7,0.40); }
.tier-teaser-max    { border-color: rgba(248,31,1,0.45); }
.tier-teaser-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.6rem;
  background: rgba(238,125,7,0.18);
  color: #ee7d07;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.tier-teaser-max .tier-teaser-badge {
  background: rgba(248,31,1,0.18);
  color: #f81f01;
}
.tier-teaser-main { flex: 1 1 220px; min-width: 0; }
.tier-teaser-slogan {
  color: #fff;
  font-weight: 600;
  font-size: 0.95rem;
}
.tier-teaser-text {
  color: #ccc;
  font-size: 0.82rem;
  margin-top: 0.15rem;
}
.tier-teaser-preis {
  color: #aaa;
  font-size: 0.78rem;
  margin-top: 0.3rem;
}
.tier-teaser-preis strong { color: #fff; }
.tier-teaser-cta {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Cross-Links Tagesplan → Mein Tag / Meine Woche */
.tagesplan-analyse-links {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-top: 0.7rem;
  padding-top: 0.7rem;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.tagesplan-analyse-link {
  flex: 1 1 auto;
  text-align: center;
  font-size: 0.82rem;
  color: #ee7d07;
  text-decoration: none;
  padding: 0.4rem 0.6rem;
  border: 1px solid rgba(238,125,7,0.25);
  border-radius: 8px;
  background: rgba(238,125,7,0.06);
  transition: background 0.15s;
}
.tagesplan-analyse-link:hover {
  background: rgba(238,125,7,0.14);
  color: #fff;
}
.tagesplan-analyse-link i { margin-right: 0.3rem; }

/* === Preise-Seite =================================================== */
.preise-section { padding: 1.5rem 1rem 3rem; max-width: 1100px; }
.preise-titel {
  font-size: 1.6rem;
  color: #fff;
  text-align: center;
  margin: 0.5rem 0 0.3rem;
}
.preise-untertitel {
  text-align: center;
  font-size: 0.9rem;
  max-width: 600px;
  margin: 0 auto 1.5rem;
}
.preise-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 720px) {
  .preise-grid { grid-template-columns: repeat(3, 1fr); }
}
.preise-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 1.2rem 1.1rem 1.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}
.preise-card-pro { border-color: rgba(238,125,7,0.35); }
.preise-card-max {
  border-color: rgba(248,31,1,0.45);
  background: linear-gradient(160deg, rgba(248,31,1,0.06) 0%, rgba(255,255,255,0.02) 100%);
}
.preise-card.is-current {
  outline: 2px solid rgba(102,201,126,0.5);
  outline-offset: -2px;
}
.preise-card-label {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  color: #ee7d07;
}
.preise-card-max .preise-card-label { color: #f81f01; }
.preise-card-free .preise-card-label { color: #aaa; }
.preise-card-slogan { color: #fff; font-weight: 500; }
.preise-card-preis {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding-top: 0.7rem;
}
.preise-card-preis strong { font-size: 2rem; color: #fff; font-variant-numeric: tabular-nums; }
.preise-card-preis span { color: #aaa; }
.preise-card-monat { font-size: 0.78rem; color: #888; margin-top: 0.2rem; }
.preise-card-features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.4rem;
  flex: 1;
}
.preise-card-features li {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  font-size: 0.86rem;
  color: #ddd;
}
.preise-card-features i { color: #66c97e; margin-top: 4px; flex: 0 0 auto; }
.preise-card-cta {
  margin-top: 0.5rem;
  text-align: center;
  padding: 0.55rem;
  color: #888;
  font-size: 0.85rem;
}
.preise-card-cta.is-current {
  background: rgba(102,201,126,0.12);
  border-radius: 8px;
  color: #6ada87;
}
button.preise-card-cta:disabled {
  background: rgba(238,125,7,0.18);
  border: 1px solid rgba(238,125,7,0.3);
  border-radius: 8px;
  color: #ee7d07;
  cursor: not-allowed;
  opacity: 0.85;
}
.preise-hinweis {
  text-align: center;
  margin-top: 1.5rem;
  font-size: 0.85rem;
}

/* === KI-Analyse-Render ============================================== */
.mein-tag-ki { border-color: rgba(170,100,255,0.25); }
.mein-tag-ki > h2 i { color: #b76dff; }

.ki-analyse-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.ki-analyse-fineprint {
  font-size: 0.75rem;
  margin-top: 0.7rem;
  color: #888;
}
.ki-analyse-fineprint i { color: #b76dff; margin-right: 0.3rem; }

.ki-analyse-result {
  display: grid;
  gap: 0.6rem;
  margin-bottom: 0.8rem;
}
.ki-summary {
  color: #fff;
  font-size: 0.95rem;
  font-weight: 500;
  border-left: 3px solid #b76dff;
  padding: 0.5rem 0.7rem;
  background: rgba(170,100,255,0.08);
  border-radius: 6px;
  margin: 0;
}

.ki-block {
  border-radius: 8px;
  padding: 0.6rem 0.8rem;
}
.ki-block h4 {
  margin: 0 0 0.3rem;
  color: #fff;
  font-size: 0.86rem;
  font-weight: 600;
}
.ki-block h4 i { margin-right: 0.35rem; }
.ki-block ul {
  margin: 0;
  padding: 0 0 0 1rem;
}
.ki-block p { margin: 0.2rem 0; color: #ddd; font-size: 0.86rem; }
.ki-block-good    { background: rgba(102,201,126,0.10); border-left: 3px solid #66c97e; }
.ki-block-good h4 i { color: #66c97e; }
.ki-block-warn    { background: rgba(238,125,7,0.10);   border-left: 3px solid #ee7d07; }
.ki-block-warn h4 i { color: #ee7d07; }
.ki-block-swap    { background: rgba(74,163,255,0.10);  border-left: 3px solid #4aa3ff; }
.ki-block-swap h4 i { color: #4aa3ff; }
.ki-block-summary { background: rgba(170,100,255,0.10); border-left: 3px solid #b76dff; }
.ki-block-summary h4 i { color: #b76dff; }
.ki-swap-warum { color: #aaa; font-size: 0.78rem !important; margin-top: 0.4rem !important; }

.ki-meta-line {
  font-size: 0.72rem;
  color: #777;
  margin: 0.3rem 0 0;
  text-align: right;
}

/* Consent-Modal */
.ki-consent-body { font-size: 0.9rem; }
.ki-consent-body p  { color: #ddd; }
.ki-consent-body ul {
  list-style: none;
  padding: 0;
  margin: 0.6rem 0 0.8rem;
  display: grid;
  gap: 0.3rem;
}
.ki-consent-body li {
  background: rgba(255,255,255,0.04);
  border-radius: 6px;
  padding: 0.45rem 0.6rem;
  color: #ddd;
  font-size: 0.86rem;
}
.ki-consent-fineprint {
  font-size: 0.78rem;
  margin: 0.5rem 0;
}

/* === Familie ======================================================== */
.familie-section { padding: 1rem 1rem 3rem; }
.familie-titel {
  font-size: 1.4rem;
  color: #fff;
  margin: 0.4rem 0 1rem;
}
.familie-titel i { color: #ee7d07; margin-right: 0.4rem; }
.familie-titel small { color: #aaa; font-size: 0.85rem; margin-left: 0.4rem; font-weight: 400; }

.familie-empty {
  text-align: center;
  padding: 3rem 1rem;
  background: rgba(255,255,255,0.03);
  border-radius: 12px;
}
.familie-empty i { font-size: 2rem; color: #ee7d07; margin-bottom: 0.5rem; }
.familie-empty h2 { color: #fff; margin: 0.6rem 0 0.3rem; }
.familie-empty p { color: #aaa; max-width: 480px; margin: 0 auto 1rem; }

.familie-grid {
  display: grid;
  gap: 0.8rem;
  grid-template-columns: 1fr;
  margin-bottom: 1.4rem;
}
@media (min-width: 640px) {
  .familie-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 980px) {
  .familie-grid { grid-template-columns: repeat(3, 1fr); }
}

.familie-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  padding: 0.9rem 1rem;
  display: grid;
  gap: 0.6rem;
}
.familie-card.is-self {
  border-color: rgba(238,125,7,0.5);
  box-shadow: 0 0 0 1px rgba(238,125,7,0.15);
}
.familie-card-good  { border-color: rgba(102,201,126,0.5); }
.familie-card-warn  { border-color: rgba(248,31,1,0.45); }
.familie-card-leer  { opacity: 0.7; }

.familie-card-head { display: flex; align-items: center; gap: 0.7rem; }
.familie-avatar {
  width: 44px; height: 44px; border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
  background: rgba(238,125,7,0.15);
}
.familie-avatar-fallback {
  display: flex; align-items: center; justify-content: center;
  color: #ee7d07; font-weight: 700; font-size: 1.2rem;
}
.familie-card-meta { flex: 1; min-width: 0; }
.familie-card-name { color: #fff; font-weight: 600; font-size: 1rem; display: flex; gap: 0.4rem; align-items: center; }
.familie-card-info { color: #888; font-size: 0.78rem; margin-top: 1px; }
.familie-tag-self,
.familie-tag-kind {
  font-size: 0.65rem; padding: 0.1rem 0.4rem; border-radius: 999px;
  text-transform: uppercase; letter-spacing: 0.04em; font-weight: 700;
}
.familie-tag-self { background: rgba(238,125,7,0.18); color: #ee7d07; }
.familie-tag-kind { background: rgba(74,163,255,0.15); color: #4aa3ff; }

.familie-ampel {
  flex: 0 0 auto;
  font-size: 1.15rem;
}
.familie-ampel-good { color: #66c97e; }
.familie-ampel-warn { color: #f81f01; }
.familie-ampel-leer { color: #555; }
.familie-ampel-neutral { color: #888; }

.familie-card-empty { color: #777; font-size: 0.84rem; font-style: italic; }
.familie-card-werte {
  font-size: 0.85rem;
  color: #ddd;
  font-variant-numeric: tabular-nums;
}
.familie-card-werte strong { color: #fff; font-size: 1.05rem; }
.familie-card-werte span { color: #888; }

.familie-card-bars { display: flex; gap: 0.25rem; }
.familie-card-bar {
  flex: 1;
  height: 4px;
  background: rgba(255,255,255,0.05);
  border-radius: 2px;
  position: relative;
  overflow: hidden;
}
.familie-card-bar::after {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0;
  width: min(var(--pct), 100%);
  background: #ee7d07;
}
.familie-card-bar-kalorien::after      { background: #ee7d07; }
.familie-card-bar-kohlenhydrate::after { background: #4aa3ff; }
.familie-card-bar-fett::after          { background: #f7c948; }
.familie-card-bar-protein::after       { background: #66c97e; }
.familie-card-bar.is-over::after       { background: #f81f01; }

.familie-card-insights {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 0.3rem;
}
.familie-card-insights li {
  font-size: 0.72rem;
  padding: 0.18rem 0.45rem;
  border-radius: 999px;
  border: 1px solid;
}
.familie-insight-good    { background: rgba(102,201,126,0.10); border-color: rgba(102,201,126,0.4); color: #6ada87; }
.familie-insight-warn    { background: rgba(248,31,1,0.10);    border-color: rgba(248,31,1,0.4);    color: #ffb3aa; }
.familie-insight-neutral { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.15); color: #ddd;    }

/* Familien-Wochen-Summary */
.familie-wochen-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.7rem;
}
.familie-wochen-stat {
  background: rgba(255,255,255,0.04);
  border-radius: 8px;
  padding: 0.7rem;
  text-align: center;
}
.familie-wochen-stat strong { display: block; font-size: 1.4rem; color: #fff; font-variant-numeric: tabular-nums; }
.familie-wochen-stat span { color: #888; font-size: 0.75rem; }

/* Tier-Hinweis im Side-Drawer */
.naviMe-tier { margin-top: 0.4rem; }
.naviMe-tier-link {
  display: flex !important;
  align-items: center;
  gap: 0.5rem;
  background: linear-gradient(135deg, rgba(238,125,7,0.10) 0%, rgba(248,31,1,0.05) 100%);
  border-left: 3px solid #ee7d07 !important;
}
.naviMe-tier-link i { color: #ee7d07; }
.naviMe-tier-link span:nth-child(2) { flex: 1; }
.naviMe-tier-link strong { color: #ee7d07; }
.naviMe-tier-upgrade {
  font-size: 0.78rem;
  color: #ee7d07;
  font-weight: 600;
  white-space: nowrap;
}

/* === Preise-Page erweitert ========================================== */
.preise-hero { text-align: center; margin: 1rem 0 1.5rem; }
.preise-hero h1 {
  font-size: 1.8rem;
  color: #fff;
  margin: 0 0 0.4rem;
}
.preise-current-pill {
  display: inline-block;
  margin-top: 0.6rem;
  padding: 0.3rem 0.8rem;
  background: rgba(102,201,126,0.12);
  border-radius: 999px;
  color: #6ada87;
  font-size: 0.85rem;
}
.preise-current-pill strong { color: #fff; }

.preise-card.is-featured {
  transform: translateY(-4px);
  box-shadow: 0 6px 20px rgba(238,125,7,0.18);
  position: relative;
}
.preise-card-ribbon {
  position: absolute;
  top: -10px;
  right: 16px;
  background: linear-gradient(135deg, #ee7d07 0%, #f81f01 100%);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  box-shadow: 0 2px 6px rgba(248,31,1,0.3);
}

.preise-vergleich-hinweis {
  text-align: center;
  margin: 1.5rem 0;
}
.preise-vergleich-hinweis a {
  color: #ee7d07;
  text-decoration: none;
  font-size: 0.9rem;
}
.preise-vergleich-hinweis a:hover { color: #fff; }

/* Trust-Block */
.preise-trust {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  margin: 2rem 0;
}
@media (min-width: 720px) {
  .preise-trust { grid-template-columns: repeat(3, 1fr); }
}
.preise-trust-item {
  background: rgba(255,255,255,0.03);
  border-radius: 10px;
  padding: 1rem 1.2rem;
  text-align: center;
}
.preise-trust-item i {
  font-size: 1.6rem;
  color: #ee7d07;
  margin-bottom: 0.5rem;
}
.preise-trust-item h3 {
  font-size: 0.95rem;
  color: #fff;
  margin: 0.4rem 0 0.3rem;
}
.preise-trust-item p {
  color: #aaa;
  font-size: 0.85rem;
  margin: 0;
}

/* Feature-Matrix */
.preise-matrix { margin: 2.5rem 0 1.5rem; }
.preise-matrix h2 {
  color: #fff;
  font-size: 1.2rem;
  margin-bottom: 0.8rem;
}
.preise-matrix h2 i { color: #ee7d07; margin-right: 0.4rem; }
.preise-matrix-wrap {
  overflow-x: auto;
  background: rgba(255,255,255,0.03);
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.07);
}
.preise-matrix-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
.preise-matrix-table th,
.preise-matrix-table td {
  padding: 0.55rem 0.7rem;
  text-align: center;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  color: #ddd;
}
.preise-matrix-table th { color: #fff; font-weight: 600; }
.preise-matrix-feat { text-align: left !important; color: #ccc; }
.preise-matrix-table th.is-featured,
.preise-matrix-table td.is-featured {
  background: rgba(238,125,7,0.06);
  color: #fff;
}
.preise-matrix-group th {
  background: rgba(238,125,7,0.10);
  color: #ee7d07 !important;
  text-align: left !important;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.7rem;
}
.preise-matrix-yes { color: #66c97e; }
.preise-matrix-no  { color: rgba(255,255,255,0.18); }

/* FAQ */
.preise-faq { margin: 2rem 0 3rem; }
.preise-faq h2 {
  color: #fff;
  font-size: 1.2rem;
  margin-bottom: 0.8rem;
}
.preise-faq h2 i { color: #ee7d07; margin-right: 0.4rem; }
.preise-faq-item {
  background: rgba(255,255,255,0.03);
  border-radius: 10px;
  padding: 0.7rem 1rem;
  margin-bottom: 0.5rem;
  border: 1px solid rgba(255,255,255,0.06);
}
.preise-faq-item summary {
  cursor: pointer;
  color: #fff;
  font-weight: 500;
  list-style: none;
  position: relative;
  padding-right: 1.5rem;
}
.preise-faq-item summary::-webkit-details-marker { display: none; }
.preise-faq-item summary::after {
  content: '+';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  color: #ee7d07;
  font-size: 1.2rem;
  font-weight: 700;
}
.preise-faq-item[open] summary::after { content: '−'; }
.preise-faq-item p {
  margin: 0.5rem 0 0;
  color: #bbb;
  font-size: 0.88rem;
  line-height: 1.5;
}
.preise-faq-item p a { color: #ee7d07; }

/* === Preise — Switcher + Preisanzeige =============================== */

/* Billing-Switcher (Jährlich / Monatlich) */
.preise-billing-switch {
  display: inline-flex;
  margin: 1.2rem auto 0;
  padding: 0.25rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 999px;
  gap: 0.2rem;
}
.preise-billing-opt {
  background: transparent;
  border: 0;
  color: #aaa;
  padding: 0.45rem 1rem;
  font-size: 0.85rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.preise-billing-opt:hover { color: #fff; }
.preise-billing-opt.is-active {
  background: #ee7d07;
  color: #fff;
  font-weight: 600;
}
.preise-billing-badge {
  font-size: 0.65rem;
  background: rgba(255,255,255,0.18);
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  font-weight: 700;
}
.preise-billing-opt:not(.is-active) .preise-billing-badge {
  background: rgba(102,201,126,0.18);
  color: #6ada87;
}

/* Preisanzeige: zwei Varianten per CSS toggeln */
.preise-preis-yearly,
.preise-preis-monthly,
.preise-preis-free { display: none; }
.preise-grid-yearly  .preise-preis-yearly,
.preise-grid-monthly .preise-preis-monthly,
.preise-preis-free { display: block; }

.preise-preis-yearly strong,
.preise-preis-monthly strong,
.preise-preis-free strong {
  font-size: 2.4rem;
  color: #fff;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.preise-preis-yearly span,
.preise-preis-monthly span,
.preise-preis-free span {
  color: #aaa;
  font-size: 0.95rem;
  margin-left: 0.2rem;
}
.preise-preis-sub {
  color: #888;
  font-size: 0.78rem;
  margin-top: 0.3rem;
}

/* CTA: Icon + Text mittig zentrieren — vorher waren sie baseline-aligned */
.preise-card-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  line-height: 1.2;
}
.preise-card-cta i { line-height: 1; }

/* === Preise: Flash + Portal-Button =================================== */
.preise-flash {
  margin: 0.8rem auto 0;
  padding: 0.7rem 1rem;
  border-radius: 10px;
  font-size: 0.9rem;
  max-width: 720px;
}
.preise-flash i { margin-right: 0.4rem; }
.preise-flash-ok     { background: rgba(102,201,126,0.12); color: #6ada87; border: 1px solid rgba(102,201,126,0.35); }
.preise-flash-cancel { background: rgba(255,255,255,0.05); color: #ccc;    border: 1px solid rgba(255,255,255,0.10); }

.preise-card-portal {
  margin-top: 0.4rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  justify-content: center;
  font-size: 0.82rem;
}

/* === Profil: Abo-Section ============================================ */
.profil-abo-row { color: #ddd; }
.profil-abo-row strong { color: #fff; }
.profil-abo-meta { color: #888; font-size: 0.85rem; }
.profil-abo-actions {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-top: 0.6rem;
}

/* === Empfehlen: Bonus-Block ========================================= */
.empfehlen-bonus-block {
  background: linear-gradient(135deg, rgba(238,125,7,0.08) 0%, rgba(248,31,1,0.04) 100%);
  border: 1px solid rgba(238,125,7,0.25);
  border-radius: 12px;
  padding: 1rem 1.2rem;
  margin: 1.2rem 0;
}
.empfehlen-bonus-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0.4rem 0 0.6rem;
}
.empfehlen-bonus-count strong {
  font-size: 1.8rem;
  color: #ee7d07;
  font-variant-numeric: tabular-nums;
}
.empfehlen-bonus-count span { color: #aaa; margin-left: 0.3rem; }
.empfehlen-bonus-bar {
  flex: 1;
  height: 8px;
  background: rgba(255,255,255,0.06);
  border-radius: 4px;
  overflow: hidden;
}
.empfehlen-bonus-bar-fill {
  display: block; height: 100%;
  background: linear-gradient(90deg, #ee7d07 0%, #f81f01 100%);
}
.empfehlen-bonus-rules {
  font-size: 0.85rem;
  color: #ccc;
  margin: 0.4rem 0;
}
.empfehlen-bonus-rules i { color: #ee7d07; margin-right: 0.3rem; }
.empfehlen-bonus-rules strong { color: #fff; }
.empfehlen-bonus-cap {
  background: rgba(102,201,126,0.15);
  color: #6ada87;
  border-radius: 8px;
  padding: 0.5rem 0.7rem;
  margin: 0.6rem 0;
  font-size: 0.88rem;
}
.empfehlen-bonus-cap i { margin-right: 0.4rem; }
.empfehlen-bonus-power {
  margin-top: 0.7rem;
  padding-top: 0.7rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  color: #bbb;
  font-size: 0.85rem;
}
.empfehlen-bonus-power strong { color: #fff; }

/* === Kalorienrechner =============================================== */
.kalorienrechner-section { padding: 1rem 1rem 3rem; }
.kalorienrechner-intro {
  max-width: 720px;
  margin-bottom: 1.2rem;
  font-size: 0.92rem;
}
.kalorienrechner-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 800px) {
  .kalorienrechner-grid { grid-template-columns: 1fr 1fr; }
}
.kalorienrechner-form,
.kalorienrechner-result {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 1rem 1.2rem 1.3rem;
}
.kalorienrechner-form .profil-section-title:first-child { margin-top: 0; }

.kal-hero {
  background: linear-gradient(135deg, rgba(238,125,7,0.08) 0%, rgba(248,31,1,0.04) 100%);
  border-radius: 10px;
  padding: 1rem;
  text-align: center;
  margin-bottom: 0.8rem;
}
.kal-hero-zahl strong {
  font-size: 2.4rem;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.kal-hero-zahl span { color: #aaa; margin-left: 0.3rem; }
.kal-warn {
  margin: 0.6rem 0 0;
  padding: 0.5rem 0.7rem;
  background: rgba(248,31,1,0.10);
  border-left: 3px solid #f81f01;
  border-radius: 6px;
  color: #ffb3aa;
  font-size: 0.85rem;
  text-align: left;
}
.kal-warn i { color: #f81f01; margin-right: 0.4rem; }

.kal-breakdown { display: grid; gap: 0.3rem; margin-bottom: 0.9rem; }
.kal-breakdown-row {
  display: flex;
  justify-content: space-between;
  font-size: 0.88rem;
  color: #ccc;
  padding: 0.3rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}
.kal-breakdown-row:last-child {
  border-bottom: 0;
  border-top: 2px solid rgba(238,125,7,0.3);
  padding-top: 0.5rem;
  margin-top: 0.2rem;
}
.kal-breakdown-row strong { color: #fff; font-variant-numeric: tabular-nums; }
.kal-breakdown-row small { color: #888; }

.kal-makro-titel {
  margin: 0.8rem 0 0.4rem;
  font-size: 0.9rem;
  color: #ddd;
}
.kal-makro-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.kal-makro-item {
  text-align: center;
  background: rgba(255,255,255,0.04);
  border-radius: 8px;
  padding: 0.55rem 0.3rem;
}
.kal-makro-item strong {
  display: block;
  font-size: 1.1rem;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.kal-makro-item span { color: #aaa; font-size: 0.78rem; }
.kal-makro-item small { color: #777; font-size: 0.7rem; display: block; margin-top: 2px; }

.kal-aktuell {
  margin: 0.8rem 0 0;
  font-size: 0.85rem;
  color: #aaa;
}
.kal-aktuell strong { color: #fff; }

.kal-actions {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin: 0.9rem 0 0.5rem;
  flex-wrap: wrap;
}
.kal-hint { font-size: 0.78rem; margin: 0.5rem 0 0; }

/* === Welcome- + Test-Mode-Banner =================================== */
.welcome-banner {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin: 0.8rem auto 1rem;
  padding: 0.8rem 1rem;
  background: linear-gradient(135deg, rgba(238,125,7,0.12) 0%, rgba(248,31,1,0.06) 100%);
  border: 1px solid rgba(238,125,7,0.35);
  border-radius: 12px;
  max-width: 960px;
  flex-wrap: wrap;
}
.welcome-banner-icon {
  font-size: 1.6rem;
  flex: 0 0 auto;
}
.welcome-banner-text {
  flex: 1 1 240px;
  font-size: 0.88rem;
  color: #ddd;
  line-height: 1.4;
}
.welcome-banner-text strong { color: #fff; }
.welcome-banner-cta {
  flex: 0 0 auto;
  white-space: nowrap;
}

.testmode-banner {
  background: rgba(74,163,255,0.12);
  border-bottom: 1px solid rgba(74,163,255,0.35);
  color: #aac9ff;
  font-size: 0.82rem;
  padding: 0.4rem 1rem;
  text-align: center;
}
.testmode-banner i { color: #4aa3ff; margin-right: 0.4rem; }
.testmode-banner strong { color: #fff; margin-right: 0.3rem; }
.testmode-banner code {
  background: rgba(255,255,255,0.10);
  padding: 0.05rem 0.4rem;
  border-radius: 4px;
  color: #fff;
  font-size: 0.78rem;
  margin: 0 0.2rem;
}

/* === Streak-Pill =================================================== */
.streak-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.9rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 999px;
  font-size: 0.86rem;
  color: #ddd;
  margin-bottom: 0.9rem;
  flex-wrap: wrap;
}
.streak-pill-heute {
  background: linear-gradient(135deg, rgba(238,125,7,0.14) 0%, rgba(248,31,1,0.06) 100%);
  border-color: rgba(238,125,7,0.4);
}
.streak-pill-gestern {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.15);
  border-style: dashed;
}
.streak-pill-icon { font-size: 1.1rem; }
.streak-pill-text strong,
.streak-pill > strong {
  color: #fff;
  font-variant-numeric: tabular-nums;
  font-size: 0.95rem;
}
.streak-pill-naechstes {
  margin-left: auto;
  font-size: 0.74rem;
  color: #888;
  background: rgba(255,255,255,0.04);
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
}
.streak-pill-mini {
  font-size: 0.78rem;
  padding: 0.35rem 0.7rem;
  margin: 0.5rem 0 0;
}
.streak-pill-mini strong { font-size: 0.86rem; }
.streak-pill-hint { color: #888; font-size: 0.74rem; margin-left: 0.3rem; }

/* === Meine Woche — Range-Switcher =================================== */
.meine-woche-range {
  display: inline-flex;
  gap: 0.2rem;
  margin: 0.5rem auto 1rem;
  padding: 0.25rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 999px;
}
.meine-woche-range-opt {
  padding: 0.4rem 0.9rem;
  font-size: 0.82rem;
  color: #aaa;
  text-decoration: none;
  border-radius: 999px;
  transition: background 0.15s, color 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
.meine-woche-range-opt:hover { color: #fff; background: rgba(255,255,255,0.04); }
.meine-woche-range-opt.is-active {
  background: #ee7d07;
  color: #fff;
  font-weight: 600;
}
.meine-woche-range-opt.is-locked {
  color: #666;
}
.meine-woche-range-opt.is-locked i { font-size: 0.7rem; }
.meine-woche-range-opt.is-locked:hover { color: #ee7d07; }

.meine-woche-chart-sub {
  font-size: 0.78rem;
  margin: -0.3rem 0 0.5rem;
}

/* === Fragen an Tobi =================================================== */
.fragen-section { padding: 1rem 1rem 3rem; max-width: 760px; }
.fragen-intro {
  font-size: 0.95rem;
  margin-bottom: 1rem;
  color: #ddd;
}
.fragen-quota {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 8px;
  padding: 0.5rem 0.8rem;
  margin-bottom: 1rem;
  font-size: 0.85rem;
  color: #aaa;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.fragen-quota strong { color: #fff; font-variant-numeric: tabular-nums; }
.fragen-quota a { color: #ee7d07; }
.fragen-quota-leer {
  background: rgba(238,125,7,0.10);
  border-left: 3px solid #ee7d07;
  padding: 0.7rem 1rem;
  border-radius: 6px;
  color: #ddd;
  margin: 1rem 0;
}
.fragen-quota-leer i { color: #ee7d07; margin-right: 0.4rem; }
.fragen-quota-leer a { color: #ee7d07; }

.fragen-form {
  display: grid;
  gap: 0.8rem;
  margin-bottom: 2rem;
  background: rgba(255,255,255,0.03);
  padding: 1rem;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.07);
}
.fragen-form label {
  display: grid;
  gap: 0.3rem;
}
.fragen-form label span {
  color: #ddd;
  font-size: 0.85rem;
  font-weight: 500;
}
.fragen-form select,
.fragen-form textarea {
  width: 100%;
  box-sizing: border-box;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  padding: 0.6rem 0.8rem;
  color: #fff;
  color-scheme: dark;
  font: inherit;
  resize: vertical;
}

.fragen-liste {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.4rem;
}
.fragen-liste-item {
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: 0.7rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 8px;
  padding: 0.6rem 0.8rem;
  color: #ddd;
  text-decoration: none;
  font-size: 0.88rem;
}
.fragen-liste-item:hover {
  background: rgba(238,125,7,0.08);
  border-color: rgba(238,125,7,0.3);
  color: #fff;
}
.fragen-liste-kat { color: #888; }
.fragen-liste-datum { color: #888; font-size: 0.78rem; text-align: right; }
.fragen-liste-status,
.fragen-status {
  font-size: 0.72rem;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}
.fragen-status-offen        { background: rgba(238,125,7,0.18); color: #ee7d07; }
.fragen-status-beantwortet  { background: rgba(102,201,126,0.15); color: #6ada87; }
.fragen-status-geschlossen  { background: rgba(255,255,255,0.08); color: #888; }

.fragen-thread {
  display: grid;
  gap: 0.6rem;
}
.fragen-thread-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.82rem;
  color: #aaa;
  margin-bottom: 0.4rem;
}
.fragen-kategorie {
  background: rgba(255,255,255,0.06);
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  color: #ddd;
}

.fragen-beitrag {
  background: rgba(255,255,255,0.04);
  border-left: 3px solid rgba(255,255,255,0.15);
  border-radius: 8px;
  padding: 0.7rem 1rem;
}
.fragen-beitrag-tobi {
  background: linear-gradient(135deg, rgba(238,125,7,0.12) 0%, rgba(248,31,1,0.05) 100%);
  border-left-color: #ee7d07;
}
.fragen-beitrag-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 0.4rem;
}
.fragen-beitrag-head strong { color: #fff; }
.fragen-beitrag-head small { color: #888; font-size: 0.75rem; }
.fragen-beitrag-text { color: #ddd; line-height: 1.5; }

.fragen-back {
  color: #ee7d07;
  text-decoration: none;
  font-size: 0.88rem;
}
.fragen-back:hover { color: #fff; }

.fragen-nachfrage {
  margin-top: 1rem;
  display: grid;
  gap: 0.6rem;
}
.fragen-nachfrage textarea {
  width: 100%;
  box-sizing: border-box;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  padding: 0.6rem 0.8rem;
  color: #fff;
  color-scheme: dark;
  font: inherit;
  resize: vertical;
}

/* === Analyse-Tabs (Gericht / Speisekarte) ========================= */
.analyse-tabs {
  display: flex;
  gap: 0.3rem;
  background: rgba(255,255,255,0.04);
  border-radius: 999px;
  padding: 0.25rem;
  margin: 1rem auto;
  max-width: 460px;
}
.analyse-tab {
  flex: 1;
  background: transparent;
  border: 0;
  color: #aaa;
  padding: 0.55rem 0.8rem;
  font-size: 0.88rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.analyse-tab i { margin-right: 0.35rem; }
.analyse-tab.is-active { background: #ee7d07; color: #fff; font-weight: 600; }

/* === Speisekarte-Box ============================================== */
.speisekarte-box { max-width: 640px; margin: 0 auto; }
.speisekarte-quota {
  text-align: center;
  font-size: 0.85rem;
  color: #aaa;
  margin-bottom: 0.8rem;
}
.speisekarte-quota i { color: #ee7d07; margin-right: 0.3rem; }
.speisekarte-quota strong { color: #fff; }
.speisekarte-restaurant {
  width: 100%;
  box-sizing: border-box;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  padding: 0.6rem 0.8rem;
  color: #fff;
  color-scheme: dark;
  font: inherit;
  margin: 0.8rem 0;
}
.speisekarte-fineprint { font-size: 0.76rem; margin-top: 0.8rem; text-align: center; }
.speisekarte-fineprint i { color: #ee7d07; margin-right: 0.3rem; }

.speisekarte-result { margin-top: 1.5rem; display: grid; gap: 0.5rem; }
.sk-typ {
  display: inline-block;
  background: rgba(255,255,255,0.06);
  color: #ddd;
  font-size: 0.75rem;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
}
.sk-block-titel {
  font-size: 0.95rem;
  color: #fff;
  margin: 0.8rem 0 0.2rem;
}
.sk-block-titel i { margin-right: 0.4rem; }
.sk-item {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 0.7rem 0.9rem;
  border-left: 3px solid rgba(255,255,255,0.15);
}
.sk-item-top      { border-left-color: #66c97e; background: rgba(102,201,126,0.08); }
.sk-item-alt      { border-left-color: #4aa3ff; }
.sk-item-vermeiden{ border-left-color: #c0352c; opacity: 0.85; }
.sk-item-main { flex: 1; min-width: 0; }
.sk-item-name { color: #fff; font-weight: 600; font-size: 0.92rem; }
.sk-item-meta { color: #ee7d07; font-size: 0.8rem; margin-top: 2px; font-variant-numeric: tabular-nums; }
.sk-item-grund { color: #aaa; font-size: 0.82rem; margin-top: 0.3rem; line-height: 1.4; }
.sk-eintragen { flex: 0 0 auto; white-space: nowrap; }
.sk-eintragen.is-done { background: rgba(102,201,126,0.2); border-color: rgba(102,201,126,0.5); color: #6ada87; }

/* === Profil: Diaet-Chips ========================================== */
.profil-diaet-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.4rem;
}
.profil-diaet-chip {
  position: relative;
  cursor: pointer;
}
.profil-diaet-chip input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.profil-diaet-chip span {
  display: inline-block;
  padding: 0.4rem 0.8rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  color: #bbb;
  font-size: 0.84rem;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.profil-diaet-chip input:checked + span {
  background: rgba(238,125,7,0.18);
  border-color: rgba(238,125,7,0.5);
  color: #fff;
}
