/* Seite: Neuigkeiten (news_feed_page.dart) – Zeilen ohne Karten und ohne Trennlinien. */

@media (min-width: 768px) {
  .page--neuigkeiten { padding-top: 12px; }
}

/* Zurück-Knopf links: gleicher Rand wie rechts bei den Kopfzeilen-Knöpfen. */
.page-header.news-header {
  gap: 4px;
  padding-left: 8px;
}
.news-header .glass-btn .icon { width: 22px; height: 22px; }
.news-header .page-header__title.text-accent { font-size: 21px; font-weight: 800; }

/* ---------- Abschnitte „Heute“ und „Diese Woche“ (Platzhalter) ---------- */
.news-section { padding-top: 6px; }
.news-section + .news-section { padding-top: 10px; }
.news-section__title {
  padding: 16px var(--gutter) 4px;
  font-size: 17px;
  font-weight: 800;
}

/* ---------- Zeile: Avatar 44, zwei Linien, Vorschau 44 (Radius 8) ---------- */
.news-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 64px;
  padding: 10px var(--gutter);
  text-align: left;
}
.news-row__avatar {
  flex: none;
  width: 44px;
  height: 44px;
}
.news-row__text {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  gap: 8px;
}
.news-row .news-row__line { height: 12px; }
.news-row .news-row__sub { height: 10px; border-radius: 5px; }
.news-row__thumb {
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: 8px;
}

.page--neuigkeiten .empty { padding-top: 28px; }

/* =====================================================================
   Angemeldet: echte Neuigkeiten
   ===================================================================== */

.nw-list { padding-bottom: 24px; }

/* Abschnittstitel: fetter Titel, „n neu“ im Verlauf, rechts „Ausblenden“ */
.nw-sec__head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 16px 12px 2px var(--gutter);
}
.nw-sec__left {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
}
.nw-sec__title {
  font-size: 16px;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nw-sec__new { flex: none; font-size: 13px; font-weight: 700; }
.nw-sec__hide {
  flex: none;
  padding: 8px 4px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--text-2);
}
.nw-sec__hide:hover { color: var(--text); }

/* Zeile: Bild-Spalte 48, Abstand 12, Text 14,5 / 1,35 */
.nw-row {
  display: flex;
  align-items: center;
  min-height: 68px;
  padding: 10px 1px 10px var(--gutter);
}
.nw-row__main {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1 1 auto;
  min-width: 0;
  color: var(--text);
  text-align: left;
}
.nw-row__text {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 14.5px;
  line-height: 1.35;
  font-weight: 400;
  overflow-wrap: anywhere;
}
.nw-row.is-unread .nw-row__text { font-weight: 600; }
.nw-row__sender { font-weight: 700; }
.nw-row.is-unread .nw-row__sender { font-weight: 800; }
.nw-row__time { color: var(--text-2); font-weight: 400; }
.nw-row__dot {
  flex: none;
  width: 8px;
  height: 8px;
  margin-left: 10px;
  border-radius: 50%;
  background: var(--accent-gradient);
}
.nw-row__hide {
  display: grid;
  place-items: center;
  flex: none;
  width: 30px;
  height: 30px;
  margin: 5px;
  color: var(--text-2);
  opacity: .5;
}
.nw-row__hide:hover { opacity: .85; }
.nw-row__hide .icon { width: 17px; height: 17px; }

/* Bild links */
.nw-visual {
  display: grid;
  place-items: center;
  flex: none;
  width: 48px;
  min-height: 46px;
}
.nw-vis--icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--surface-soft);
}
.nw-vis--icon .icon { width: 22px; height: 22px; }
.nw-vis-wrap { position: relative; display: inline-grid; }
.nw-vis__badge {
  position: absolute;
  right: -4px;
  bottom: -4px;
  display: grid;
  place-items: center;
  padding: 3px;
  border-radius: 50%;
  background: var(--bg);
}
.nw-vis__badge .icon { width: 12px; height: 12px; }
.nw-media {
  display: block;
  overflow: hidden;
  background: var(--placeholder);
}
.nw-media__img { width: 100%; height: 100%; object-fit: cover; }
.nw-media--avatar { width: 46px; height: 46px; border-radius: 50%; }
.nw-media--post { width: 48px; height: 60px; border-radius: 12px; }
.nw-media--story { width: 44px; height: 58px; border-radius: 12px; }
.nw-media--event { width: 46px; height: 46px; border-radius: 14px; }

/* Folgen-Knopf (Handlung groß im Verlauf, Erledigtes leise) */
.nw-follow {
  flex: none;
  display: inline-grid;
  place-items: center;
  height: 30px;
  margin-left: 10px;
  padding: 0 14px;
  border-radius: var(--r-pill);
  background: var(--accent-gradient);
  color: var(--on-accent);
  font-size: 12.5px;
  font-weight: 800;
  white-space: nowrap;
}
.nw-follow--done {
  padding: 0 4px;
  background: none;
  color: var(--text-2);
  font-weight: 700;
}

/* Fehler */
.nw-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 48px 40px;
  text-align: center;
  color: var(--text-2);
}
.nw-error .icon { width: 44px; height: 44px; opacity: .6; }
.nw-error__title { color: var(--text); font-size: 17px; font-weight: 800; line-height: 1.3; }
.nw-error .btn .icon { width: 18px; height: 18px; opacity: 1; }

/* ---------- Anfragen-Banner (eine Zeile wie die Neuigkeiten) ---------- */
.nw-banner-slot { padding-top: 4px; }
.nw-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 8px 10px var(--gutter);
  color: var(--text);
}
.nw-banner__text { flex: 1 1 auto; min-width: 0; display: grid; gap: 2px; }
.nw-banner__title {
  font-size: 14.5px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nw-banner__sub {
  font-size: 13.5px;
  color: var(--text-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nw-banner > .icon { flex: none; width: 22px; height: 22px; color: var(--text-2); }
.nw-count {
  flex: none;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: var(--r-pill);
  background: var(--accent-gradient);
  color: var(--on-accent);
  font-size: 12px;
  font-weight: 800;
  line-height: 22px;
  text-align: center;
}
.nw-banner__avatars { display: inline-grid; }
.nw-banner__avatars--two { position: relative; width: 46px; height: 46px; }
.nw-banner__back { position: absolute; left: 0; top: 0; }
.nw-banner__front {
  position: absolute;
  right: -2px;
  bottom: -2px;
  padding: 2px;
  border-radius: 50%;
  background: var(--bg);
}
.nw-live-avatar { display: inline-grid; }
.nw-banner-error {
  display: grid;
  justify-items: center;
  gap: 4px;
  padding: 16px;
  font-size: 14px;
  color: var(--text-2);
  text-align: center;
}
.nw-banner-error .link-btn { color: var(--text); font-size: 14px; }

/* ---------- Anfragen-Ansicht (follow_requests_page.dart) ---------- */
.page--anfragen .page-header__title.text-accent { font-size: 23px; }
.nw-req-stats {
  padding: 4px 20px 8px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text-2);
}
.nw-req-stats:empty { display: none; }
.nw-req-list { padding-bottom: 24px; }
.nw-req {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
}
.nw-req__who {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1 1 auto;
  min-width: 0;
  color: var(--text);
}
.nw-req__text { display: grid; gap: 2px; min-width: 0; }
.nw-req__name,
.nw-req__sub {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nw-req__name { font-size: 15px; font-weight: 800; }
.nw-req__sub { font-size: 12.5px; font-weight: 500; color: var(--text-2); }
.nw-req__actions { display: flex; align-items: center; gap: 6px; flex: none; }
.nw-accept {
  display: grid;
  place-items: center;
  width: 92px;
  height: 36px;
  border-radius: var(--r-pill);
  background: var(--accent-gradient);
  color: var(--on-accent);
  font-size: 12.5px;
  font-weight: 800;
}
.nw-decline {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(255, 255, 255, .14);
  color: var(--text-2);
}
:root[data-theme="light"] .nw-decline { background: rgba(0, 0, 0, .04); border-color: rgba(0, 0, 0, .12); }
.nw-decline .icon { width: 17px; height: 17px; }
.nw-accept:disabled,
.nw-decline:disabled { opacity: .55; }
.nw-spinner {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid currentColor;
  border-right-color: transparent;
  animation: nw-spin .8s linear infinite;
}
@keyframes nw-spin { to { transform: rotate(360deg); } }

.nw-req-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 56px 28px 24px;
  text-align: center;
}
.nw-req-empty__icon {
  display: grid;
  place-items: center;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  background: var(--accent-gradient);
  color: #fff;
  margin-bottom: 18px;
}
.nw-req-empty__icon .icon { width: 38px; height: 38px; }
.nw-req-empty__title { font-size: 20px; font-weight: 800; }
.nw-req-empty__text { margin-top: 8px; max-width: 320px; font-size: 13.5px; line-height: 1.45; color: var(--text-2); }

@media (prefers-reduced-motion: reduce) {
  .nw-spinner { animation-duration: 2.4s; }
}
