/* Joghurt x Team-Panel - folgt bewusst der "quiet surfaces"-Philosophie aus apple.css (ruhige
   Flaechen, weiche Schatten, kein Neon-Glow) statt eines eigenstaendigen Cyberpunk-Looks - nur
   die Akzentfarbe weicht vom sitewiden Blau ab (Lila->Orange, "Vice City"-Sonnenuntergang statt
   Miami-Neon). Reine Token-Ueberschreibung unter .cv-theme, kein Anfassen von style.css/
   apple.css/theme.css (geteilt mit dem echten Kunden-Dashboard). */
:root {
  --cv-purple: #7c3aed;
  --cv-purple-bright: #9d5cff;
  --cv-purple-dark: #5b21b6;
  --cv-orange: #ff8a3d;
  --cv-orange-bright: #ffab6b;
}

.cv-theme {
  --accent: var(--cv-purple);
  --accent-bright: var(--cv-purple-bright);
  --accent-dark: var(--cv-purple-dark);
  --accent-glow: rgba(124, 58, 237, 0.16);
  --glow-blue: 0 8px 24px rgba(124, 58, 237, 0.12);
  --teal: var(--cv-orange);
  --teal-bright: var(--cv-orange-bright);
}

/* Sanfter Farbverlauf-Schimmer statt eines Neon-Rasters - passend zur restlichen Seite
   spuerbar zurueckhaltender, in beiden Farbschemata theme-eigene Tokens statt fester
   Schwarz/Weiss-Annahmen. */
.cv-wash {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 60vw 40vh at 15% -10%, rgba(124, 58, 237, 0.14), transparent 60%),
    radial-gradient(ellipse 55vw 40vh at 100% 10%, rgba(255, 138, 61, 0.12), transparent 60%);
}

.cv-page {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 20px;
  background: var(--bg);
}

.cv-content {
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Marken-Reihe: nur die zwei Logos (Joghurt + Programm-Palme), kein Text-Lockup mehr - die
   Palmen-Grafik traegt "Programm" bereits selbsterklaerend mit. */
.cv-brand-logos {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;
}

.cv-brand-logos img {
  height: 44px;
  width: auto;
  object-fit: contain;
}

.cv-brand-logos .cv-brand-divider {
  width: 1px;
  height: 28px;
  background: var(--border);
}

.cv-card {
  width: 100%;
  max-width: 420px;
  background: var(--bg-panel);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  padding: 36px 32px;
  text-align: center;
  box-shadow: var(--shadow-md);
}

.cv-card h1 {
  font-size: 1.4rem;
  margin: 0 0 10px;
  letter-spacing: -0.02em;
}

.cv-card p {
  color: var(--text-muted);
  font-size: 0.92rem;
  line-height: 1.55;
  margin: 0 0 24px;
}

.cv-icon {
  width: 52px;
  height: 52px;
  margin: 0 auto 18px;
  border-radius: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(124, 58, 237, 0.12), rgba(255, 138, 61, 0.12));
  border: 1px solid var(--border-soft);
  color: var(--cv-purple);
}

.cv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 40px;
  padding: 10px 20px;
  border-radius: 980px;
  border: none;
  font-family: var(--font-body);
  font-weight: 550;
  font-size: 0.875rem;
  letter-spacing: -0.01em;
  color: #fff;
  background: linear-gradient(100deg, var(--cv-purple), var(--cv-orange));
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.18s var(--ease), box-shadow 0.18s var(--ease);
  box-shadow: 0 3px 10px rgba(124, 58, 237, 0.18);
}

/* :visited braucht eine eigene Regel - der Browser-Standardstil dafuer (a:visited) hat
   hoehere Spezifitaet als eine einzelne Klasse (Element+Pseudoklasse schlaegt Klasse allein)
   und ueberschreibt sonst das weisse color:#fff, sobald der Link einmal besucht wurde -
   live genau so gemeldet (Text kaum lesbar nach dem ersten Klick auf "Mit Discord anmelden"/
   "Zur Creator Academy"). */
.cv-btn:visited {
  color: #fff;
}

.cv-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(124, 58, 237, 0.24);
}

/* Kennzahl-Karten (Challenge Week): eigene Unterzeile statt Inline-Span im .value - der
   grosse Wert hat negatives Letter-Spacing, ein kleiner Span darin wurde zusammengequetscht. */
.cv-theme .card .card-sub {
  margin: 6px 0 0;
  font-size: 0.78rem;
  color: var(--text-faint);
  letter-spacing: 0;
}

.cv-alert {
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  font-size: 0.86rem;
  margin-bottom: 20px;
  text-align: left;
  background: var(--error-glow);
  border: 1px solid var(--error-glow);
  color: var(--error);
}

/* ---------- Panel-Shell (nach dem Login) ---------- */

.cv-shell {
  width: 100%;
  max-width: 1080px;
}

.cv-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

.cv-placeholder {
  background: var(--bg-panel);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  padding: 48px 32px;
  text-align: center;
  box-shadow: var(--shadow-sm);
}

.cv-placeholder h2 {
  font-size: 1.3rem;
  margin: 0 0 10px;
}

.cv-placeholder p {
  color: var(--text-muted);
  margin: 0;
}

/* ---------- Sidebar-Reskin ---------- */

.cv-dashboard-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: var(--bg);
}
.cv-dashboard-bg::before,
.cv-dashboard-bg::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
}
.cv-dashboard-bg::before {
  width: 50vmax;
  height: 50vmax;
  top: -20vmin;
  left: -15vw;
  background: radial-gradient(circle, rgba(124, 58, 237, 0.1), transparent 140%);
}
.cv-dashboard-bg::after {
  width: 45vmax;
  height: 45vmax;
  top: 5vh;
  right: -15vw;
  background: radial-gradient(circle, rgba(255, 138, 61, 0.09), transparent 140%);
}

/* Der zusaetzliche Klassen-Selektor ist absichtlich - style.css's ".dash-brand > div > img"
   (fuer den normalen Wortmarke-Slot, 94x25px erzwungen) und ".dash-brand > img" (31x37px +
   blauer Drop-Shadow fuers Icon) haben beide hoehere Spezifitaet als ein reiner Typ-Selektor
   und wuerden das quadratische Palmen-Logo sonst verzerren/blau ueberstrahlen (live so
   reproduziert). */
.dash-brand > img.cv-logo-icon {
  width: 34px;
  height: 34px;
  object-fit: contain;
  filter: none;
}

/* Challenge-Week-Rangliste: eigene Zeile hervorheben, Avatare in der Teilnehmer-Zelle. */
/* Hintergrund auf der ZEILE (wie tbody tr:hover in style.css), nicht je Zelle - ein Verlauf pro
   td startet in jeder Zelle neu und zerfaellt optisch in Bloecke. */
.cv-theme table tbody tr.is-me {
  background: rgba(124, 58, 237, 0.12);
  box-shadow: inset 3px 0 0 #9d5cff;
}
.cv-theme table tbody tr.is-me:hover {
  background: rgba(124, 58, 237, 0.18);
  box-shadow: inset 3px 0 0 #ff8a3d;
}
/* Tabellen scrollen in einem eigenen Wrapper statt per overflow-x auf .card - .card hat
   absolut positionierte Glanz-Pseudoelemente, die bei overflow:auto einen Scrollbalken erzeugen. */
.cv-theme .table-wrap {
  overflow-x: auto;
  margin: 0 -4px;
  padding: 0 4px;
}
.cv-theme .avatar-circle img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.cv-theme .rank-medal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.8rem;
  background: rgba(255, 255, 255, 0.06);
  color: var(--text-muted);
}
.cv-theme .rank-medal.top {
  background: linear-gradient(135deg, #7c3aed, #ff8a3d);
  color: #fff;
  box-shadow: 0 0 12px rgba(124, 58, 237, 0.35);
}

/* Challenges-Tab der Challenge Week. */
.cv-theme .challenge-card.is-done { box-shadow: 0 0 0 1px var(--cv-orange, #ff8a3d), var(--shadow-md); }
.cv-theme .challenge-desc { color: var(--text-muted); font-size: 0.82rem; margin: 6px 0 10px; min-height: 2.4em; }
.cv-theme .challenge-progress { height: 6px; border-radius: 999px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.cv-theme .challenge-progress-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, #7c3aed, #ff8a3d); transition: width 0.4s ease; }
.cv-theme .challenge-meta { display: flex; justify-content: space-between; gap: 8px; font-size: 0.76rem; color: var(--text-faint); margin-top: 6px; font-variant-numeric: tabular-nums; }
.cv-theme .challenge-points { color: var(--text-faint); font-weight: 600; letter-spacing: 0; text-transform: none; }
.cv-theme .badge.tier-bronze { background: rgba(205, 127, 50, 0.16); color: #e2a06a; }
.cv-theme .badge.tier-silber { background: rgba(200, 205, 215, 0.14); color: #d8dde6; }
.cv-theme .badge.tier-gold { background: rgba(255, 171, 107, 0.18); color: #ffab6b; }

/* Challenges-Tab: festes 4er-Raster - 7 Karten stehen 4 + 3 statt 5 + 2, und jeder Abschnitt hat gleich
   breite Karten (auto-fit hat Abschnitte mit 3-4 Karten auf volle Breite gestreckt). */
.cv-theme .challenge-grid.challenge-cols { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .cv-theme .challenge-grid.challenge-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .cv-theme .challenge-grid.challenge-cols { grid-template-columns: minmax(0, 1fr); } }
/* Platz fuer das Symbol oben rechts - sonst wird "+50 Pkt" abgeschnitten. */
.cv-theme .challenge-card .label { padding-right: 42px; }
.cv-theme .challenge-meta span:last-child { text-align: right; }
/* Challenge Week: Tagesaufgaben (Challenges-Tab), Daily Challenges und Platz-Preise (Belohnungen-Tab). */
.cv-theme .challenge-card.is-missed { opacity: 0.6; }
.cv-theme .challenge-card.is-upcoming { opacity: 0.78; }
.cv-theme .badge.daily-level-leicht { background: rgba(52, 211, 153, 0.14); color: #1f9d6c; }
.cv-theme .badge.daily-level-mittel { background: rgba(124, 58, 237, 0.14); color: #7c3aed; }
.cv-theme .badge.daily-level-schwer { background: rgba(255, 138, 61, 0.18); color: #c25a12; }
html[data-theme="dark"] .cv-theme .badge.daily-level-leicht { color: #6ee7b7; }
html[data-theme="dark"] .cv-theme .badge.daily-level-mittel { color: #c4b5fd; }
html[data-theme="dark"] .cv-theme .badge.daily-level-schwer { color: var(--cv-orange-bright, #ffab6b); }
.cv-theme .daily-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
/* Kopf eines Tages der Daily Challenges: Status links, Tagesbelohnung mit Voraussetzung und eigenem Stand. */
.cv-theme [data-day-reward-form] [data-show-kind][hidden] { display: none; }
.cv-theme .daily-day-head { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px 18px; margin: 26px 0 12px; padding: 14px 16px; border: 1px solid var(--border-soft); border-left: 3px solid rgba(124, 58, 237, 0.55); border-radius: 14px; background: rgba(124, 58, 237, 0.04); }
.cv-theme .daily-day-head.is-today { border-left-color: var(--cv-orange, #ff8a3d); background: rgba(255, 138, 61, 0.06); }
.cv-theme .daily-day-head-main { flex: 0 1 260px; min-width: 200px; }
.cv-theme .daily-day-head-main h3 { margin: 4px 0 0; font-size: 0.98rem; }
.cv-theme .daily-day-reward { flex: 1 1 360px; min-width: 0; display: flex; gap: 12px; align-items: flex-start; }
.cv-theme .daily-day-reward.is-none { align-items: center; }
.cv-theme .daily-day-reward-icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 10px; background: rgba(124, 58, 237, 0.14); color: #7c3aed; }
.cv-theme .daily-day-reward.is-booster .daily-day-reward-icon { background: rgba(52, 211, 153, 0.16); color: #1f9d6c; }
.cv-theme .daily-day-reward.is-cv .daily-day-reward-icon { background: rgba(255, 138, 61, 0.18); color: #c25a12; }
.cv-theme .daily-day-reward-body { min-width: 0; }
.cv-theme .daily-day-reward-title { font-weight: 700; overflow-wrap: anywhere; }
.cv-theme .daily-day-reward-sub { font-size: 0.82rem; color: var(--text-muted); margin-top: 2px; overflow-wrap: anywhere; }
.cv-theme .daily-day-reward-req { font-size: 0.78rem; color: var(--text-faint); margin-top: 4px; }
.cv-theme .daily-day-reward-me { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 8px; font-size: 0.82rem; }
.cv-theme .daily-day-reward-stat { color: var(--text-muted); font-variant-numeric: tabular-nums; }
html[data-theme="dark"] .cv-theme .daily-day-reward.is-booster .daily-day-reward-icon { color: #6ee7b7; }
html[data-theme="dark"] .cv-theme .daily-day-reward.is-cv .daily-day-reward-icon { color: var(--cv-orange-bright, #ffab6b); }
html[data-theme="dark"] .cv-theme .daily-day-reward-icon { color: #c4b5fd; }
.cv-theme .day-task-reward { display: flex; align-items: center; gap: 6px; margin: -4px 0 10px; font-size: 0.82rem; font-weight: 600; color: #c25a12; overflow-wrap: anywhere; }
.cv-theme .prize-list { display: flex; flex-direction: column; }
.cv-theme .prize-row { display: flex; align-items: flex-start; gap: 14px; padding: 12px 0; border-top: 1px solid var(--border-soft); }
.cv-theme .prize-row:first-child { border-top: 0; padding-top: 0; }
.cv-theme .prize-row:last-child { padding-bottom: 0; }
.cv-theme .prize-row.is-locked { opacity: 0.65; }
.cv-theme .prize-row .rank-medal { flex: none; }
.cv-theme .prize-body { flex: 1; min-width: 0; }
.cv-theme .prize-title { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-weight: 700; }
.cv-theme .prize-text { margin-top: 4px; color: var(--text); overflow-wrap: anywhere; }
.cv-theme .prize-sub { margin-top: 4px; font-size: 0.8rem; color: var(--text-faint); }
/* Team-Panel: Belohnungen pflegen. */
.cv-theme .reward-task-grid { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.cv-theme .reward-task-form label { margin-bottom: 10px; }
.cv-theme .reward-task-form input, .cv-theme .reward-task-form select { margin-top: 4px; }
.cv-theme .reward-task-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cv-theme .reward-task-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 4px; }
.cv-theme .reward-task-meta { font-size: 0.76rem; color: var(--text-faint); }
.cv-theme .reward-grid-table td.reward-cell { text-align: center; font-variant-numeric: tabular-nums; color: var(--text-faint); font-size: 0.8rem; }
.cv-theme .reward-grid-table td.reward-cell.is-done { color: #c25a12; }
html[data-theme="dark"] .cv-theme .day-task-reward, html[data-theme="dark"] .cv-theme .reward-grid-table td.reward-cell.is-done { color: var(--cv-orange-bright, #ffab6b); }
.cv-theme .reward-target-unit { font-weight: 400; color: var(--text-faint); }
.cv-theme .reward-grid-table th { white-space: nowrap; }
.cv-theme .reward-done-list { margin: 8px 0 0; padding-left: 18px; font-size: 0.85rem; line-height: 1.6; }
.cv-theme .reward-done-list span { color: var(--text-faint); font-size: 0.76rem; }
.cv-theme .reward-prize-form input { margin-top: 6px; }
.cv-theme .reward-prize-form .prize-title { margin-bottom: 0; color: var(--text); font-size: 0.9rem; }

/* ---------------------------------------------------------------- Terminkalender (/cv/calendar) */
/* Die Monatsansicht braucht die volle Breite: mit einer Spalte daneben werden die Tage so schmal,
   dass von den Titeln nichts mehr lesbar ist. Deshalb Raster oben, Listen darunter. */
.cv-theme .card.cal-card { padding: 20px; }
.cv-theme .card.cal-card::after { content: none; }
.cv-theme .card.cal-card:hover { transform: none; }
.cv-theme .cal-toolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 14px; }
.cv-theme .cal-toolbar h3 { margin: 0 6px; font-size: 1.18rem; font-weight: 650; }
.cv-theme .cal-spacer { flex: 1; }
.cv-theme .btn.cal-nav { width: 34px; min-width: 34px; padding: 0; }
.cv-theme a.cv-btn.cal-add { display: inline-flex; align-items: center; justify-content: center; gap: 7px; width: auto; padding: 0 18px; text-decoration: none; }
.cv-theme .cal-weekdays, .cv-theme .cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.cv-theme .cal-weekdays { margin-bottom: 6px; }
.cv-theme .cal-weekdays li { padding: 0 8px; color: var(--text-faint); font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.cv-theme .cal-grid { gap: 1px; background: var(--border-soft); border: 1px solid var(--border-soft); border-radius: 14px; overflow: hidden; }
.cv-theme .cal-day { min-width: 0; min-height: 112px; padding: 6px; display: flex; flex-direction: column; gap: 3px; background: var(--bg-panel); }
.cv-theme .cal-day.is-outside { background: var(--bg-panel-2); }
.cv-theme .cal-day.is-selected { box-shadow: inset 0 0 0 2px var(--cv-purple); }
.cv-theme .cal-date { align-self: flex-start; display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; padding: 0 7px; border-radius: 999px; color: var(--text-muted); font-size: .8rem; font-weight: 600; text-decoration: none; font-variant-numeric: tabular-nums; }
.cv-theme .cal-day.is-outside .cal-date { color: var(--text-faint); }
.cv-theme .cal-date:hover { background: var(--bg-panel-3); color: var(--text); }
.cv-theme .cal-day.is-today .cal-date { background: var(--cv-purple); color: #fff; }
.cv-theme .cal-chip { display: flex; align-items: baseline; gap: 5px; min-width: 0; padding: 3px 7px; border-radius: 7px; border-left: 2px solid var(--cv-purple); background: rgba(124, 58, 237, .08); color: #4c1d95; font-size: .75rem; line-height: 1.35; text-decoration: none; }
.cv-theme .cal-chip:hover { background: rgba(124, 58, 237, .16); color: #4c1d95; }
.cv-theme .cal-chip time { flex-shrink: 0; font-weight: 650; font-variant-numeric: tabular-nums; }
.cv-theme .cal-chip span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.cv-theme .cal-chip.is-past { opacity: .55; }
.cv-theme .cal-more { padding: 0 7px; color: var(--text-muted); font-size: .72rem; text-decoration: none; }
.cv-theme .cal-below { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; margin-top: 20px; }
.cv-theme .cal-list { list-style: none; margin: 0; padding: 0; }
.cv-theme .cal-list li + li { border-top: 1px solid var(--border-soft); }
.cv-theme .cal-item { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 12px; padding: 12px 0; color: inherit; text-decoration: none; }
.cv-theme .cal-item-date { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 46px; border-radius: 12px; background: rgba(124, 58, 237, .08); color: #5b21b6; line-height: 1.1; }
.cv-theme .cal-item-date b { font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.cv-theme .cal-item-date small { font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.cv-theme .cal-item-title { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--text); font-weight: 600; font-size: .9rem; }
.cv-theme .cal-item-meta { display: block; margin-top: 2px; color: var(--text-faint); font-size: .76rem; }
.cv-theme .cal-detail { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 12px; padding: 12px 0; }
.cv-theme .cal-detail.is-past { opacity: .6; }
.cv-theme .cal-detail-time { display: flex; flex-direction: column; font-variant-numeric: tabular-nums; }
.cv-theme .cal-detail-time b { font-size: .92rem; }
.cv-theme .cal-detail-time small { color: var(--text-faint); font-size: .74rem; }
.cv-theme .cal-desc { margin: 6px 0 0; color: var(--text-muted); font-size: .82rem; white-space: pre-line; }
.cv-theme .cal-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.cv-theme .cal-picker-group { border: 0; margin: 0 0 18px; padding: 0; }
.cv-theme .cal-picker-group legend { padding: 0; margin: 0 0 8px; color: var(--text-muted); font-size: .875rem; }
.cv-theme .cal-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
.cv-theme .cal-pick { display: flex; align-items: center; gap: 9px; min-width: 0; margin: 0; padding: 8px 10px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg-panel); color: var(--text); font-size: .85rem; cursor: pointer; }
.cv-theme .cal-pick:has(input:checked) { border-color: var(--cv-purple); background: rgba(124, 58, 237, .07); }
.cv-theme .cal-pick input { accent-color: var(--cv-purple); flex-shrink: 0; }
.cv-theme .cal-pick span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.cv-theme .cal-form .cal-when { grid-template-columns: 1.4fr 1fr 1fr; }
.cv-theme .cal-form input[type="date"], .cv-theme .cal-form input[type="time"] { width: 100%; }
/* Ohne das faerbt apple.css jeden Absende-Knopf beim Ueberfahren blau statt im Team-Verlauf. */
body .cv-theme button.cv-btn:hover, body .cv-theme button.cv-btn:active { background: linear-gradient(100deg, var(--cv-purple), var(--cv-orange)); }

html[data-theme="dark"] .cv-theme a.cal-chip, html[data-theme="dark"] .cv-theme a.cal-chip:hover { color: #dccbff; }
html[data-theme="dark"] .cv-theme .cal-chip { background: rgba(157, 92, 255, .14); border-left-color: #9d5cff; }
html[data-theme="dark"] .cv-theme .cal-chip:hover { background: rgba(157, 92, 255, .24); }
html[data-theme="dark"] .cv-theme a.cal-date { color: var(--text-muted); }
html[data-theme="dark"] .cv-theme .cal-day.is-outside a.cal-date { color: var(--text-faint); }
html[data-theme="dark"] .cv-theme .cal-day.is-today a.cal-date { color: #fff; background: #7c3aed; }
html[data-theme="dark"] .cv-theme a.cal-date:hover { color: var(--text); background: var(--bg-panel-3); }
html[data-theme="dark"] .cv-theme .cal-item-date small { color: inherit; }
html[data-theme="dark"] .cv-theme a.cal-more { color: var(--text-muted); }
html[data-theme="dark"] .cv-theme a.cal-item { color: inherit; }
html[data-theme="dark"] .cv-theme .cal-item-date { background: rgba(157, 92, 255, .14); color: #dccbff; }
html[data-theme="dark"] .cv-theme .cal-pick:has(input:checked) { background: rgba(157, 92, 255, .12); border-color: #9d5cff; }

@media (max-width: 1100px) { .cv-theme .cal-below { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) {
  .cv-theme .card.cal-card { padding: 14px; }
  .cv-theme .cal-weekdays li { padding: 0; text-align: center; font-size: .66rem; }
  .cv-theme .cal-day { min-height: 52px; padding: 4px 2px; align-items: center; }
  .cv-theme .cal-date { align-self: center; }
  .cv-theme .cal-chip, .cv-theme .cal-more { display: none; }
  .cv-theme .cal-day.has-events::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--cv-purple); }
  .cv-theme .cal-detail { grid-template-columns: 62px minmax(0, 1fr); }
}

/* ---------------------------------------------------------------- Termin-Status, Termin abschliessen, Academy-ToDos */
.cv-theme .status-badge { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: 999px; font-size: .68rem; font-weight: 650; letter-spacing: .01em; vertical-align: middle; background: rgba(124, 58, 237, .1); color: var(--cv-purple); }
.cv-theme .status-badge.status-done { background: rgba(34, 160, 95, .12); color: #1f8a53; }
.cv-theme .status-badge.status-cancelled { background: rgba(120, 120, 135, .14); color: var(--text-muted); }
.cv-theme .status-badge.status-no_show { background: rgba(220, 60, 90, .12); color: #c23355; }
.cv-theme .status-badge.status-missing { background: rgba(255, 138, 61, .16); color: #c25a12; }
html[data-theme="dark"] .cv-theme .status-badge { background: rgba(157, 92, 255, .16); color: #dccbff; }
html[data-theme="dark"] .cv-theme .status-badge.status-done { background: rgba(110, 231, 168, .14); color: var(--success); }
html[data-theme="dark"] .cv-theme .status-badge.status-cancelled { background: rgba(255, 255, 255, .08); color: var(--text-muted); }
html[data-theme="dark"] .cv-theme .status-badge.status-no_show { background: rgba(243, 139, 160, .14); color: var(--error); }
html[data-theme="dark"] .cv-theme .status-badge.status-missing { background: rgba(255, 171, 107, .16); color: var(--cv-orange-bright); }

.cv-theme .cal-chip.is-cancelled span { text-decoration: line-through; }
.cv-theme .cal-chip.needs-closing { border-left-color: var(--cv-orange); }
.cv-theme .cal-status-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 4px; }
.cv-theme .cal-todo-link { display: inline-flex; align-items: center; gap: 4px; color: var(--text-muted); font-size: .76rem; text-decoration: none; }
.cv-theme .cal-todo-link:hover { color: var(--cv-purple); }
.cv-theme .cal-report { margin-top: 8px; padding: 8px 10px; border-radius: 10px; background: var(--bg-panel-2); }
.cv-theme .cal-report b { display: block; color: var(--text-faint); font-size: .66rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.cv-theme .cal-report p { margin: 2px 0 0; color: var(--text-muted); font-size: .82rem; white-space: pre-line; overflow-wrap: anywhere; }
.cv-theme .cal-detail-actions { display: flex; flex-direction: column; align-items: stretch; gap: 6px; align-self: start; }

.cv-theme .close-summary { display: flex; flex-direction: column; gap: 4px; margin-bottom: 16px; padding: 16px 20px; }
.cv-theme .close-summary-title { font-size: 1.05rem; font-weight: 650; color: var(--text); }
.cv-theme .close-hint { margin: 4px 0 0; color: var(--text-muted); font-size: .8rem; }
.cv-theme .close-label { display: block; margin: 0 0 6px; color: var(--text-muted); font-size: .875rem; }
.cv-theme .close-status { border: 0; margin: 0 0 18px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.cv-theme .close-status legend { padding: 0; margin: 0 0 8px; color: var(--text-muted); font-size: .875rem; }
.cv-theme .close-choice { display: flex; align-items: flex-start; gap: 9px; margin: 0; padding: 10px 12px; border: 1px solid var(--border); border-radius: 12px; cursor: pointer; }
.cv-theme .close-choice:has(input:checked) { border-color: var(--cv-purple); background: rgba(124, 58, 237, .07); }
.cv-theme .close-choice input { accent-color: var(--cv-purple); margin-top: 3px; flex-shrink: 0; }
.cv-theme .close-choice b { display: block; font-size: .88rem; }
.cv-theme .close-choice small { display: block; color: var(--text-faint); font-size: .74rem; }
html[data-theme="dark"] .cv-theme .close-choice:has(input:checked) { background: rgba(157, 92, 255, .12); border-color: #9d5cff; }
.cv-theme .close-existing, .cv-theme .close-todos { margin: 4px 0 18px; }
.cv-theme .todo-mini { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.cv-theme .todo-mini li { display: flex; align-items: center; gap: 7px; font-size: .84rem; color: var(--text); }
.cv-theme .todo-mini li small { color: var(--text-faint); }
.cv-theme .todo-mini li.is-done span { text-decoration: line-through; color: var(--text-faint); }
.cv-theme .todo-rows { display: grid; gap: 8px; margin: 8px 0 10px; }
.cv-theme .todo-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.2fr) minmax(0, 1.2fr) minmax(130px, 150px); gap: 8px; }
.cv-theme .todo-row > * { min-width: 0; width: 100%; }
.cv-theme .todo-row-head span { color: var(--text-faint); font-size: .7rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.cv-theme .todo-cell { display: flex; flex-direction: column; gap: 4px; margin: 0; min-width: 0; }
.cv-theme .todo-cell > input, .cv-theme .todo-cell > select { width: 100%; min-width: 0; }
.cv-theme .todo-cell-label { display: none; color: var(--text-faint); font-size: .7rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.cv-theme .badge.badge-member { background: rgba(255, 138, 61, .14); color: #c25a12; }
html[data-theme="dark"] .cv-theme .badge.badge-member { color: var(--cv-orange-bright); }

.cv-theme .dash-menu a { position: relative; }
.cv-theme .dash-count { margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: var(--cv-purple); color: #fff; font-size: .7rem; font-weight: 700; font-variant-numeric: tabular-nums; }
/* Nur Symbole sichtbar (eingeklappt oder schmale Leiste): Zahl als kleiner Punkt am Symbol statt
   am Zeilenende - sonst verschiebt margin-left:auto den Eintrag. Im Handy-Menue (bis 760px) sind
   die Beschriftungen immer sichtbar, dort bleibt die Zahl normal. */
@media (min-width: 761px) and (max-width: 1100px) {
  .cv-theme .dash-count { position: absolute; top: 2px; right: 4px; min-width: 16px; height: 16px; padding: 0 4px; font-size: .6rem; }
}
@media (min-width: 761px) {
  .cv-theme .dash-sidebar.collapsed .dash-count { position: absolute; top: 2px; right: 4px; min-width: 16px; height: 16px; padding: 0 4px; font-size: .6rem; }
}

.cv-theme .todo-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 16px; }
.cv-theme .todo-toolbar .filters { margin: 0; }
.cv-theme .filters.todo-tabs a.active { background: var(--cv-purple); color: #fff; }
.cv-theme .todo-filter-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(255, 138, 61, .12); color: var(--text); font-size: .8rem; text-decoration: none; }
.cv-theme .todo-filter-chip:hover { background: rgba(255, 138, 61, .2); }
.cv-theme .card.todo-create { max-width: 900px; margin-bottom: 16px; padding: 14px 20px; }
.cv-theme .card.todo-create::after { content: none; }
.cv-theme .card.todo-create:hover { transform: none; }
.cv-theme .todo-create > summary { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; font-weight: 600; color: var(--cv-purple); list-style: none; }
.cv-theme .todo-create > summary::-webkit-details-marker { display: none; }
.cv-theme .todo-create[open] > summary { margin-bottom: 12px; }
.cv-theme .todo-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 12px; }
.cv-theme .todo-fields .todo-field-title { grid-column: 1 / -1; }
.cv-theme .todo-fields select, .cv-theme .todo-fields input { width: 100%; }
.cv-theme .card.todo-card { max-width: 900px; padding: 6px 20px; }
.cv-theme .card.todo-card::after { content: none; }
.cv-theme .card.todo-card:hover { transform: none; }
.cv-theme .todo-empty { margin: 14px 0; color: var(--text-muted); }
.cv-theme .todo-list { list-style: none; margin: 0; padding: 0; }
.cv-theme .todo-item { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 12px; padding: 14px 0; }
.cv-theme .todo-item + .todo-item { border-top: 1px solid var(--border-soft); }
.cv-theme .todo-check-form { margin: 2px 0 0; }
body .cv-theme .todo-check-form button.todo-check { width: 24px; height: 24px; min-height: 0; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; border: 2px solid var(--border); background: transparent; color: #fff; box-shadow: none; transform: none; cursor: pointer; }
body .cv-theme .todo-check-form button.todo-check:hover { border-color: var(--cv-purple); background: rgba(124, 58, 237, .1); transform: none; box-shadow: none; }
body .cv-theme .todo-item.is-done .todo-check-form button.todo-check { border-color: var(--cv-purple); background: var(--cv-purple); }
.cv-theme .todo-title { display: block; color: var(--text); font-weight: 600; overflow-wrap: anywhere; }
.cv-theme .todo-item.is-done .todo-title { text-decoration: line-through; color: var(--text-faint); }
.cv-theme .todo-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-top: 4px; color: var(--text-muted); font-size: .78rem; }
.cv-theme .todo-meta a { color: inherit; text-decoration: none; }
.cv-theme .todo-meta a:hover { color: var(--cv-purple); text-decoration: underline; }
.cv-theme .todo-meta-faint { color: var(--text-faint); font-size: .74rem; }
.cv-theme .todo-member, .cv-theme .todo-due { display: inline-flex; align-items: center; gap: 4px; }
.cv-theme .todo-due.is-today { color: #c25a12; font-weight: 600; }
.cv-theme .todo-due.is-overdue { color: #c23355; font-weight: 600; }
html[data-theme="dark"] .cv-theme .todo-due.is-today { color: var(--cv-orange-bright); }
html[data-theme="dark"] .cv-theme .todo-due.is-overdue { color: var(--error); }
.cv-theme .todo-edit { margin-top: 8px; }
.cv-theme .todo-edit > summary { display: inline-block; cursor: pointer; color: var(--text-faint); font-size: .76rem; }
.cv-theme .todo-edit > summary:hover { color: var(--cv-purple); }
.cv-theme .todo-edit[open] { padding: 12px; margin-top: 10px; border: 1px solid var(--border-soft); border-radius: 12px; background: var(--bg-panel-2); }
.cv-theme .todo-edit[open] > summary { margin-bottom: 10px; }
.cv-theme .todo-edit-actions { display: flex; gap: 8px; }
.cv-theme .todo-delete-form { margin-top: 10px; }

/* Dunkles Schema: theme.css faerbt alle Links ohne "btn" in der Akzentfarbe (hier dunkles Lila,
   kaum lesbar) - die neuen Links bekommen eigene, lesbare Farben. */
html[data-theme="dark"] .cv-theme .todo-meta a,
html[data-theme="dark"] .cv-theme a.cal-todo-link { color: var(--text-muted); }
html[data-theme="dark"] .cv-theme .todo-meta-faint a { color: var(--text-faint); }
html[data-theme="dark"] .cv-theme .todo-meta a:hover,
html[data-theme="dark"] .cv-theme a.cal-todo-link:hover { color: #dccbff; }
html[data-theme="dark"] .cv-theme a.todo-filter-chip { color: var(--text); }
html[data-theme="dark"] .cv-theme .filters.todo-tabs a:not(.active) { color: var(--text-muted); }
html[data-theme="dark"] .cv-theme .cal-chip.needs-closing { border-left-color: var(--cv-orange-bright); }

.cv-theme .card.cal-needs-result { margin-bottom: 20px; border-color: rgba(255, 138, 61, .45); }
.cv-theme .card.cal-needs-result::after { content: none; }
.cv-theme .card.cal-needs-result:hover { transform: none; }
.cv-theme .cal-needs-item { display: flex; align-items: center; gap: 12px; }
.cv-theme .cal-needs-item .cal-item { flex: 1; min-width: 0; }
.cv-theme .cal-needs-item .btn { flex-shrink: 0; }

/* Termin abschliessen: vier Spalten nur, wenn genug Platz ist - sonst zwei, mit eigener Beschriftung je Feld. */
@media (max-width: 1200px) {
  .cv-theme .todo-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding-bottom: 10px; border-bottom: 1px solid var(--border-soft); }
  .cv-theme .todo-cell-title { grid-column: 1 / -1; }
  .cv-theme .todo-cell-label { display: block; }
  .cv-theme .todo-row-head { display: none; }
}

@media (max-width: 760px) {
  .cv-theme .close-status { grid-template-columns: minmax(0, 1fr); }
  .cv-theme .todo-fields { grid-template-columns: minmax(0, 1fr); }
  .cv-theme .cal-detail-actions { grid-column: 2; flex-direction: row; flex-wrap: wrap; }
  .cv-theme .cal-day.has-events.needs-result::after { background: var(--cv-orange); }
  .cv-theme .cal-needs-item { flex-wrap: wrap; }
}

/* Mitglieder/Teilnehmer entfernen: aufklappbares Mini-Formular in der Tabellenzeile + Hinweisleiste */
.kick-details { display: inline-block; vertical-align: top; margin-left: 6px; }
.kick-details > summary { list-style: none; cursor: pointer; }
.kick-details > summary::-webkit-details-marker { display: none; }
.kick-details[open] > summary { opacity: 0.7; }
.kick-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.kick-form input[name="reason"] { flex: 1 1 200px; min-width: 0; }
.kick-reason { max-width: 320px; white-space: normal; overflow-wrap: anywhere; }
.kick-banner { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }

/* ---- Streamer-Tracker (/cv/tracker) */
.cv-theme .tracker-add-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 12px; align-items: end; }
.cv-theme .tracker-add-fields label { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cv-theme .tracker-field-label { font-size: 0.78rem; font-weight: 600; color: var(--text-muted); }
.cv-theme .tracker-field-label small { font-weight: 400; }
.cv-theme .tracker-add-fields .cv-btn { white-space: nowrap; }
.cv-theme .tracker-add-hint { margin: 10px 0 0; font-size: 0.8rem; color: var(--text-muted); }
.cv-theme .tracker-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin: 18px 0 12px; }
.cv-theme .tracker-toolbar .filters { margin: 0; }
.cv-theme .tracker-status { margin: 0; font-size: 0.8rem; color: var(--text-muted); }
.cv-theme .tracker-table-card { max-width: 1180px; }
.cv-theme .tracker-table td { vertical-align: top; }
.cv-theme .tracker-table tr.is-live td:first-child { box-shadow: inset 3px 0 0 var(--cv-orange); }
.cv-theme .tracker-table tr.is-selected { background: var(--accent-glow); }
.cv-theme .tracker-sort { color: inherit; text-decoration: none; white-space: nowrap; }
.cv-theme .tracker-sort.active { color: var(--accent-bright); }
.cv-theme .tracker-who { min-width: 230px; }
.cv-theme .tracker-who-link { display: flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.cv-theme .tracker-who-link strong { display: block; }
.cv-theme .tracker-who-link small { color: var(--text-faint); font-size: 0.76rem; }
.cv-theme .tracker-who-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-top: 6px; font-size: 0.78rem; color: var(--text-muted); }
.cv-theme .tracker-note { margin-top: 4px; font-size: 0.76rem; color: var(--text-faint); max-width: 320px; overflow-wrap: anywhere; }
.cv-theme .tracker-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.cv-theme .tracker-avatar-lg { width: 64px; height: 64px; }
.cv-theme .tracker-avatar-empty { display: inline-flex; align-items: center; justify-content: center; background: var(--accent-glow); color: var(--accent-bright); font-weight: 700; }
.cv-theme .tracker-sub { font-size: 0.76rem; color: var(--text-faint); margin-top: 2px; }
.cv-theme .tracker-warn { color: var(--error); }
.cv-theme .tracker-trend { font-size: 0.74rem; font-weight: 600; white-space: nowrap; color: var(--text-muted); }
.cv-theme .tracker-trend.up { color: var(--success); }
.cv-theme .tracker-trend.down { color: var(--error); }
.cv-theme .tracker-empty { margin: 0; color: var(--text-muted); }
.cv-theme .tracker-info { max-width: 1180px; margin-top: 14px; }
.cv-theme .tracker-info h4, .cv-theme .tracker-charts h4, .cv-theme .tracker-curve h4, .cv-theme .tracker-games h4 { margin: 0 0 10px; font-size: 0.92rem; }
.cv-theme .tracker-info ul { margin: 0; padding-left: 18px; font-size: 0.82rem; color: var(--text-muted); line-height: 1.6; }
.cv-theme .tracker-removed { max-width: 1180px; margin-top: 14px; }
.cv-theme .tracker-removed summary { cursor: pointer; font-weight: 600; }
.cv-theme .tracker-removed ul { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cv-theme .tracker-removed li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.cv-theme .tracker-removed small { color: var(--text-faint); }
.cv-theme .tracker-removed-actions { display: flex; gap: 6px; }
.cv-theme .tracker-removed-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.cv-theme .tracker-back { margin: 0 0 10px; font-size: 0.85rem; }
.cv-theme .tracker-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; max-width: 1180px; }
.cv-theme .tracker-head-main { display: flex; gap: 14px; align-items: flex-start; min-width: 0; flex: 1 1 420px; }
.cv-theme .tracker-head-text { min-width: 0; }
.cv-theme .tracker-head-live { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 0.86rem; }
.cv-theme .tracker-head-title { margin: 6px 0 0; font-size: 0.86rem; overflow-wrap: anywhere; }
.cv-theme .tracker-head-meta { margin: 6px 0 0; font-size: 0.78rem; color: var(--text-muted); }
.cv-theme .tracker-ext { font-size: 0.8rem; }
.cv-theme .tracker-head-side { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; flex: 0 1 360px; }
.cv-theme .tracker-note-form { width: 100%; display: flex; flex-direction: column; gap: 6px; font-size: 0.78rem; color: var(--text-muted); }
.cv-theme .tracker-note-row { display: flex; gap: 6px; }
.cv-theme .tracker-note-row input { flex: 1; min-width: 0; }
.cv-theme .tracker-kpis { max-width: 1180px; }
.cv-theme .tracker-kpis .value { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.cv-theme .tracker-charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; max-width: 1180px; margin-top: 14px; }
.cv-theme .tracker-curve { max-width: 1180px; margin-top: 14px; }
.cv-theme .tracker-chart svg { height: auto; }
.cv-theme .tracker-stream-title small { display: block; color: var(--text-faint); max-width: 360px; overflow-wrap: anywhere; }
.cv-theme .tracker-games { max-width: 1180px; margin-top: 14px; }
.cv-theme .tracker-games ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cv-theme .tracker-games li { display: grid; grid-template-columns: minmax(120px, 220px) minmax(0, 1fr) auto; align-items: center; gap: 10px; font-size: 0.84rem; }
.cv-theme .tracker-game-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-theme .tracker-game-bar { height: 8px; border-radius: 4px; background: var(--border-soft); overflow: hidden; }
.cv-theme .tracker-game-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--cv-purple), var(--cv-orange)); border-radius: 4px; }
.cv-theme .tracker-game-hours { color: var(--text-muted); font-size: 0.78rem; white-space: nowrap; }

@media (max-width: 900px) {
  .cv-theme .tracker-add-fields { grid-template-columns: minmax(0, 1fr); }
  .cv-theme .tracker-charts { grid-template-columns: minmax(0, 1fr); }
  .cv-theme .tracker-head-side { align-items: stretch; flex-basis: 100%; }
  .cv-theme .tracker-games li { grid-template-columns: minmax(0, 1fr) auto; }
  .cv-theme .tracker-game-bar { grid-column: 1 / -1; grid-row: 2; }
}
/* Streamer-Tracker: Raenge + Uprank-Vorschlaege */
.cv-theme .tracker-suggestions { max-width: 1180px; margin-top: 14px; border: 1px solid var(--accent-glow); }
.cv-theme .tracker-suggestions h4 { margin: 0 0 10px; font-size: 0.92rem; display: flex; align-items: center; gap: 6px; }
.cv-theme .tracker-suggestions ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.cv-theme .tracker-suggestion { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(0, 1.4fr) auto; align-items: center; gap: 10px 16px; }
.cv-theme .tracker-suggestion small, .cv-theme .tracker-suggestion-values small { color: var(--text-faint); }
.cv-theme .tracker-suggestion-values { font-size: 0.84rem; }
.cv-theme .tracker-suggestion-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.cv-theme .tracker-suggestion-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; max-width: 1180px; }
/* Inaktiv-Liste: gleiche Zeilen wie die Uprank-Vorschlaege, in aufklappbaren Gruppen je Grund. */
.cv-theme .tracker-inactive { border-color: var(--border); }
.cv-theme .tracker-inactive-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; }
.cv-theme .tracker-inactive-head h4 { margin: 0; }
.cv-theme .tracker-inactive-hint { margin: 6px 0 4px; font-size: 0.8rem; color: var(--text-muted); max-width: 820px; }
.cv-theme .tracker-inactive-group { margin-top: 10px; }
.cv-theme .tracker-inactive-group summary { cursor: pointer; font-size: 0.86rem; font-weight: 600; padding: 4px 0; }
.cv-theme .tracker-inactive-group ul { margin-top: 8px; }
.cv-theme .tracker-rank-badge { display: inline-flex; align-items: center; gap: 3px; }
.cv-theme .tracker-ranks { max-width: 1180px; }
.cv-theme .tracker-rank-new { margin-top: 14px; }
.cv-theme .tracker-rank-new h4 { margin: 0 0 10px; font-size: 0.92rem; }
.cv-theme .tracker-rank-list { display: flex; flex-direction: column; gap: 8px; }
.cv-theme .tracker-rank-row { display: grid; grid-template-columns: minmax(0, 1fr) 40px; gap: 8px; align-items: center; }
/* Feste Spaltenbreiten, damit Kopfzeile und jede Zeile (eigenes Raster je Formular) buendig sind. */
.cv-theme .tracker-rank-grid { display: grid; grid-template-columns: 80px minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 84px 96px; gap: 8px; align-items: center; min-width: 0; }
.cv-theme .tracker-rank-grid input, .cv-theme .tracker-rank-grid select { width: 100%; min-width: 0; }
.cv-theme .tracker-rank-grid label { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cv-theme .tracker-rank-cap { display: none; font-size: 0.72rem; color: var(--text-faint); }
.cv-theme .tracker-rank-head { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-faint); }
.cv-theme .tracker-rank-form { display: grid; gap: 8px; min-width: 0; }
.cv-theme .tracker-rank-form-new { grid-template-columns: 90px minmax(140px, 1.4fr) minmax(110px, 1fr) minmax(110px, 1fr) minmax(130px, 1fr) auto; align-items: end; }
.cv-theme .tracker-rank-form-new label { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cv-theme .tracker-rank-count { font-size: 0.78rem; color: var(--text-muted); white-space: nowrap; }
.cv-theme .tracker-rank-delete { margin: 0; }
@media (max-width: 900px) {
  .cv-theme .tracker-suggestion { grid-template-columns: minmax(0, 1fr); }
  .cv-theme .tracker-rank-form-new, .cv-theme .tracker-rank-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .cv-theme .tracker-rank-head { display: none; }
  .cv-theme .tracker-rank-cap { display: block; }
  .cv-theme .tracker-rank-row { padding-bottom: 8px; border-bottom: 1px solid var(--border-soft); }
}

/* ---------- Creator Train: Teamwahl + Lobby ---------- */
.train-picker-head { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.train-picker-count { font-weight: 700; font-size: 0.85rem; font-variant-numeric: tabular-nums; }
.train-picker-search { flex: 1 1 200px; max-width: 280px; }
.train-picker-list {
  display: grid;
  gap: 4px;
  max-height: 360px;
  overflow-y: auto;
  margin-top: 8px;
  padding: 4px;
  border: 1px solid var(--border-soft);
  border-radius: 10px;
}
.train-picker-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 8px;
  border-radius: 8px;
}
.train-picker-row:hover { background: rgba(255, 255, 255, 0.03); }
.train-picker-row[hidden] { display: none; }
.train-picker-row.busy { opacity: 0.55; }
.train-picker-name { font-size: 0.86rem; min-width: 0; overflow-wrap: anywhere; }
.train-picker-login { color: var(--text-faint); font-size: 0.76rem; }
.train-picker-live { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: #eb0400; box-shadow: 0 0 0 2px rgba(235, 4, 0, 0.22); vertical-align: 1px; }
.train-picker-seg { display: inline-flex; border: 1px solid var(--border-soft); border-radius: 999px; overflow: hidden; flex: 0 0 auto; }
.train-picker-seg label { display: inline-flex; margin: 0; cursor: pointer; }
.train-picker-seg input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.train-picker-seg span { padding: 4px 10px; font-size: 0.76rem; color: var(--text-muted); white-space: nowrap; }
.train-picker-seg label + label span { border-left: 1px solid var(--border-soft); }
.train-picker-seg input:checked + span { background: var(--cv-orange, #ff8a3d); color: #140f1e; font-weight: 700; }
.train-picker-seg input[value="A"]:checked + span { background: #9d5cff; color: #fff; }
.train-picker-seg input:focus-visible + span { outline: 2px solid var(--cv-orange, #ff8a3d); outline-offset: -2px; }
.train-picker-seg input:disabled + span { opacity: 0.4; cursor: not-allowed; }
.train-picker-hint { color: var(--text-faint); font-size: 0.78rem; margin: 6px 0 0; min-height: 1em; }

.train-lobby { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.train-lobby-team { padding: 12px; border: 1px solid var(--border-soft); border-radius: 12px; background: rgba(255, 255, 255, 0.02); }
.train-lobby-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 5px 0; }
.train-lobby-row + .train-lobby-row { border-top: 1px solid var(--border-soft); }
.train-lobby-name { flex: 1 1 140px; font-size: 0.86rem; min-width: 0; overflow-wrap: anywhere; }
.train-lobby-row form { margin-left: auto; }

/* Streamer-Tracker: Chat-Mitschrift und Auffaelligkeiten (/cv/tracker/chat) */
.cv-theme .tchat-status, .cv-theme .tchat-cases, .cv-theme .tchat-box { max-width: 1180px; }
.cv-theme .tchat-status p { margin: 0; font-size: 0.86rem; color: var(--text-muted); }
.cv-theme .tchat-status p + p { margin-top: 6px; }
.cv-theme .tchat-cases h4, .cv-theme .tchat-box h4 { margin: 0 0 8px; }
.cv-theme .tchat-cases > details > summary { cursor: pointer; font-size: 0.9rem; font-weight: 600; }
.cv-theme .tchat-case-list { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 12px; }
.cv-theme .tchat-case { padding: 12px 14px; border: 1px solid var(--border-soft); border-radius: 12px; background: rgba(255, 255, 255, 0.02); scroll-margin-top: 80px; }
.cv-theme .tchat-case:target { border-color: var(--accent); }
.cv-theme .tchat-case-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; }
.cv-theme .tchat-case-head small { margin: 0 8px; color: var(--text-faint); }
.cv-theme .tchat-case-links, .cv-theme .tchat-case-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cv-theme .tchat-case-actions { margin-top: 10px; }
.cv-theme .tchat-noclip { font-size: 0.8rem; color: var(--text-faint); }
.cv-theme .tchat-case-summary { margin: 8px 0 0; font-size: 0.88rem; overflow-wrap: anywhere; }
.cv-theme .tchat-review { margin: 8px 0 0; font-size: 0.82rem; color: var(--text-muted); overflow-wrap: anywhere; }
.cv-theme .tchat-excerpt { margin-top: 8px; }
.cv-theme .tchat-excerpt summary { cursor: pointer; font-size: 0.8rem; color: var(--text-muted); }
.cv-theme .tchat-lines { list-style: none; margin: 8px 0 0; padding: 8px 10px; max-height: 340px; overflow-y: auto; border-radius: 10px; background: rgba(0, 0, 0, 0.18); font-size: 0.84rem; }
.cv-theme .tchat-lines-full { max-height: none; margin-top: 0; }
.cv-theme .tchat-line { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; padding: 2px 4px; border-radius: 6px; }
.cv-theme .tchat-line time { color: var(--text-faint); font-variant-numeric: tabular-nums; white-space: nowrap; }
.cv-theme .tchat-line span { overflow-wrap: anywhere; }
.cv-theme .tchat-line.mod span { color: var(--text-muted); font-style: italic; }
.cv-theme .tchat-line.hit { background: rgba(229, 72, 77, 0.16); }
.cv-theme .tchat-line.hit span { color: var(--text); font-weight: 600; font-style: normal; }
.cv-theme .tchat-done-form { display: flex; flex: 1 1 320px; gap: 6px; }
.cv-theme .tchat-done-form input[type="text"] { flex: 1 1 auto; min-width: 0; }
.cv-theme .tchat-phrases { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.cv-theme .tchat-phrases li { display: inline-flex; align-items: center; gap: 4px; padding: 3px 4px 3px 10px; border: 1px solid var(--border-soft); border-radius: 999px; font-size: 0.84rem; }
.cv-theme .tchat-phrases small { color: var(--text-faint); }
.cv-theme .tchat-x { border: 0; background: none; color: var(--text-muted); font-size: 1rem; line-height: 1; padding: 2px 6px; border-radius: 999px; cursor: pointer; }
.cv-theme .tchat-x:hover, .cv-theme .tchat-x:focus-visible { color: var(--text); background: rgba(255, 255, 255, 0.08); }
.cv-theme .tchat-add { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 12px; }
.cv-theme .tchat-add input[type="text"] { flex: 1 1 260px; min-width: 0; max-width: 420px; }
.cv-theme .tchat-check { display: inline-flex; align-items: center; gap: 6px; font-size: 0.86rem; }
.cv-theme .tchat-settings { display: grid; gap: 12px; justify-items: start; }
.cv-theme .tchat-settings fieldset { display: grid; gap: 6px; margin: 0; padding: 10px 12px; border: 1px solid var(--border-soft); border-radius: 10px; min-width: min(100%, 420px); }
.cv-theme .tchat-settings legend { padding: 0 6px; font-size: 0.78rem; font-weight: 600; color: var(--text-muted); }
.cv-theme .tchat-channel { display: grid; gap: 4px; margin-top: 4px; }
.cv-theme .tchat-channel input { max-width: 280px; }
.cv-theme .tchat-pager { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }

/* Streamer-Tracker: Blacklist */
.cv-theme .tracker-blacklist { border-color: rgba(229, 72, 77, 0.35); }
.cv-theme .tracker-blacklist-who { display: grid; gap: 2px; min-width: 0; flex: 1 1 320px; }
.cv-theme .tracker-blacklist-reason { font-size: 0.86rem; overflow-wrap: anywhere; }
.cv-theme .tracker-blacklist-add { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; margin-top: 14px; }
.cv-theme .tracker-blacklist-add label { display: grid; gap: 4px; flex: 0 1 220px; min-width: 0; }
.cv-theme .tracker-blacklist-add .tracker-blacklist-reason-field { flex: 1 1 280px; }
.cv-theme .tracker-blacklist-details { margin-top: 10px; flex-basis: 100%; }
.cv-theme .tracker-blacklist-details summary { cursor: pointer; font-size: 0.82rem; color: var(--text-muted); }

/* Streamer-Tracker, neue Gliederung (12.10.2026): Kennzahlen in einer Zeile, Steckbrief + Verwaltung nebeneinander,
   Erklaerungen eingeklappt. */
/* Mit body .main davor: apple.css setzt das erste Raster einer Seite sonst fest auf drei Spalten. */
body .main .grid.tracker-kpis.tracker-kpis-fit { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
/* Sechs Kacheln der Detailseite: zwei volle Dreierreihen statt fuenf und einer einzelnen. */
body .main .grid.tracker-kpis.tracker-kpis-six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 760px) { body .main .grid.tracker-kpis.tracker-kpis-six { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cv-theme .tracker-top { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(280px, 1fr); gap: 14px; max-width: 1180px; align-items: start; }
.cv-theme .tracker-top > .card { max-width: none; margin: 0; }
.cv-theme .tracker-manage h4 { margin: 0 0 12px; }
.cv-theme .tracker-manage .tracker-head-side { align-items: stretch; flex: none; }
.cv-theme .tracker-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px 18px; margin: 14px 0 0; }
.cv-theme .tracker-facts dt { font-size: 0.72rem; color: var(--text-muted); letter-spacing: 0.02em; }
.cv-theme .tracker-facts dd { margin: 2px 0 0; font-size: 0.92rem; font-weight: 600; overflow-wrap: anywhere; }
.cv-theme .tracker-facts dd small { font-weight: 400; color: var(--text-muted); }
.cv-theme .tracker-tags { margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.cv-theme .tracker-fold > summary { cursor: pointer; font-weight: 650; font-size: 0.95rem; list-style-position: inside; }
.cv-theme .tracker-fold[open] > summary { margin-bottom: 10px; }
.cv-theme .tracker-fold > summary::after { content: "  ▾ aufklappen"; font-weight: 400; font-size: 0.8rem; color: var(--text-muted); }
.cv-theme .tracker-fold[open] > summary::after { content: "  ▴ zuklappen"; }
@media (max-width: 980px) {
  .cv-theme .tracker-top { grid-template-columns: minmax(0, 1fr); }
}

/* Streamer-Tracker in fuenf Seiten (12.10.2026): Streamer-Dashboard, Tracker, Upranks, Inaktiv, Blacklist.
   tracker-first = erste Karte einer Seite, ohne den Abstand, den die Listen-Karten sonst nach oben halten. */
.cv-theme .tracker-first { margin-top: 0; }
.cv-theme .tracker-who-meta a.badge { text-decoration: none; }
/* Streamer-Dashboard (/cv/tracker/dashboard) */
.cv-theme .streamdash-toolbar { margin-top: 0; max-width: 1180px; }
.cv-theme .streamdash-heading { margin: 22px 0 10px; font-size: 0.78rem; font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); }
.cv-theme .streamdash-tasks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; max-width: 1180px; }
.cv-theme .streamdash-task { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 12px 14px; border: 1px solid var(--border); border-radius: 14px; color: var(--text); text-decoration: none; background: var(--bg-panel); }
.cv-theme .streamdash-task:hover { border-color: var(--cv-purple); }
.cv-theme .streamdash-task:focus-visible { outline: 2px solid var(--cv-purple); outline-offset: 2px; }
.cv-theme .streamdash-task-icon { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex-shrink: 0; border-radius: 10px; background: var(--border-soft); color: var(--text-muted); }
.cv-theme .streamdash-task.is-open { border-color: var(--cv-orange); }
.cv-theme .streamdash-task.is-open .streamdash-task-icon { background: var(--accent-glow); color: var(--cv-orange); }
.cv-theme .streamdash-task-text { min-width: 0; }
.cv-theme .streamdash-task-text b { display: block; font-size: 0.9rem; overflow-wrap: anywhere; }
.cv-theme .streamdash-task-text small { display: block; color: var(--text-muted); font-size: 0.76rem; }
.cv-theme .streamdash-task-count { font-variant-numeric: tabular-nums; }
.cv-theme .streamdash-cols { display: grid; gap: 14px; max-width: 1180px; align-items: start; margin-top: 14px; }
.cv-theme .streamdash-cols-wide { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
.cv-theme .streamdash-cols-three { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 0; }
.cv-theme .streamdash-cols > .card { max-width: none; margin: 0; min-width: 0; }
.cv-theme .streamdash-card-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 12px; margin-bottom: 12px; }
.cv-theme .streamdash-card-head h4 { margin: 0; font-size: 0.92rem; display: flex; align-items: center; gap: 6px; }
.cv-theme .streamdash-card-head a, .cv-theme .streamdash-note { font-size: 0.78rem; color: var(--text-muted); }
.cv-theme .streamdash-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.cv-theme .streamdash-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; }
.cv-theme .streamdash-list .tracker-who-link { min-width: 0; flex: 1 1 auto; }
.cv-theme .streamdash-list .tracker-who-link > span:last-child { min-width: 0; }
.cv-theme .streamdash-list .tracker-who-link strong, .cv-theme .streamdash-list .tracker-who-link small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-theme .streamdash-list .tracker-who-link small { display: block; }
.cv-theme .streamdash-value { flex-shrink: 0; text-align: right; font-variant-numeric: tabular-nums; }
.cv-theme .streamdash-value b { display: block; font-size: 0.95rem; }
.cv-theme .streamdash-value small { display: block; font-size: 0.74rem; color: var(--text-faint); }
.cv-theme .streamdash-ranked { counter-reset: streamdash; }
.cv-theme .streamdash-ranked li { counter-increment: streamdash; }
.cv-theme .streamdash-ranked li::before { content: counter(streamdash); flex-shrink: 0; width: 16px; font-size: 0.78rem; font-weight: 650; color: var(--text-faint); font-variant-numeric: tabular-nums; }
/* Balkenlisten: feste rechte Spalte, damit alle Balken gleich lang beginnen und enden. */
.cv-theme .tracker-rank-bars li { grid-template-columns: minmax(120px, 220px) minmax(0, 1fr) 200px; }
.cv-theme .tracker-rank-bars .tracker-game-hours { text-align: right; }
.cv-theme .tracker-inactive-head h4 { display: flex; align-items: center; gap: 6px; }
@media (max-width: 900px) {
  .cv-theme .tracker-rank-bars li { grid-template-columns: minmax(0, 1fr) auto; }
}
@media (max-width: 980px) {
  .cv-theme .streamdash-cols-wide, .cv-theme .streamdash-cols-three { grid-template-columns: minmax(0, 1fr); }
  .cv-theme .streamdash-tasks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .cv-theme .streamdash-tasks { grid-template-columns: minmax(0, 1fr); }
}

/* Watcher (/cv/watcher): Auffaelligkeiten aus den Chats - Reiter, Kennzahlen, Fall-Listen mit Filter. */
.cv-theme .watcher-state { max-width: 1180px; margin: 12px 0 14px; }
.cv-theme .watcher-cases-head { margin-bottom: 4px; }
.cv-theme .watcher-cases-head h4 { margin: 0; }
.cv-theme .watcher-kinds { margin: 0; }
.cv-theme .watcher-kinds a { font-size: 0.8rem; }
.cv-theme .tchat-box + .tchat-box { margin-top: 14px; }
.cv-theme .tchat-box h4, .cv-theme .tchat-cases h4 { display: flex; align-items: center; gap: 6px; }
/* .cv-btn ist sonst so breit wie sein Kasten - in den Karten des Watchers nur so breit wie sein Text. */
.cv-theme .tchat-box .cv-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; width: auto; padding: 0 18px; text-decoration: none; }
body .cv-theme .tchat-add input[type="text"] { flex: 1 1 260px; max-width: 420px; width: auto; }

/* Seite Tracker (/cv/tracker): alle Bloecke gleich breit - breiter als die uebrigen Tracker-Seiten, weil die
   Tabelle sieben Spalten hat. */
.cv-theme .tracker-page { max-width: 1480px; container-type: inline-size; }
.cv-theme .tracker-page > .card, .cv-theme .tracker-page > .tracker-toolbar { max-width: none; }
.cv-theme .tracker-toolbar-left { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; min-width: 0; }
/* Suchfeld: Lupe links im Feld, Trefferzahl rechts daneben. */
.cv-theme .tracker-search { position: relative; display: flex; align-items: center; gap: 8px; margin: 0; }
.cv-theme .tracker-search-icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); display: inline-flex; color: var(--text-faint); pointer-events: none; }
/* !important: die allgemeine Feld-Regel des Panels setzt den Innenabstand sonst zurueck und die Lupe laege auf dem Text. */
body .cv-theme .tracker-search input[type="search"] { width: 250px; max-width: 100%; height: 40px; padding: 0 12px 0 36px !important; border-radius: 12px; font-size: 0.88rem; }
.cv-theme .tracker-search-count { font-size: 0.78rem; color: var(--text-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.cv-theme .tracker-search-empty { padding: 14px 4px 2px; }
/* Tabelle: volle Breite, Zahlenspalten ohne Umbruch, Name und Abzeichen bekommen den Rest. */
.cv-theme .tracker-table { width: 100%; }
.cv-theme .tracker-table th, .cv-theme .tracker-table td { padding-top: 12px; padding-bottom: 12px; }
.cv-theme .tracker-table th { white-space: nowrap; }
/* Die Zahlenspalten nehmen, was sie brauchen (kein Umbruch) - Name und Abzeichen bekommen den ganzen Rest. */
.cv-theme .tracker-table .tracker-who { min-width: 280px; }
.cv-theme .tracker-table .tracker-num, .cv-theme .tracker-table .tracker-state { white-space: nowrap; font-variant-numeric: tabular-nums; }
.cv-theme .tracker-table .tracker-num strong { font-size: 0.95rem; }
.cv-theme .tracker-table .tracker-state > span:not(.badge) { font-size: 0.86rem; }
.cv-theme .tracker-table .tracker-state-game { max-width: 150px; overflow: hidden; text-overflow: ellipsis; }
.cv-theme .tracker-table .tracker-col-action { width: 1%; text-align: right; white-space: nowrap; }
.cv-theme .tracker-table tr[hidden] { display: none; }
.cv-theme .tracker-table .tracker-who-meta { gap: 6px; margin-top: 8px; }
/* Wenig Platz (schmales Fenster oder ausgeklappte Seitenleiste): Unterzeilen duerfen umbrechen, statt dass die
   Tabelle seitlich rollt. */
@container (max-width: 1240px) {
  .cv-theme .tracker-table .tracker-num .tracker-sub, .cv-theme .tracker-table .tracker-state .tracker-sub { white-space: normal; }
  .cv-theme .tracker-table .tracker-who { min-width: 240px; }
}
@media (max-width: 760px) {
  body .cv-theme .tracker-search input[type="search"] { width: 100%; }
  .cv-theme .tracker-search { flex: 1 1 100%; }
}
