/* .pc-tournaments-head ist mit 6.88.0 entfallen, die Seite hat ihren
   Kopfbereich verloren. Die Breitenregel bleibt und traegt jetzt allein
   den Inhalt; ohne sie klebte er am Fensterrand. */
.pc-games-container {
  width: var(--pc-width);
  max-width: var(--pc-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 !important;
  box-sizing: border-box;
  background: transparent !important;
  background-color: transparent !important;

  display: flex;
  flex-direction: column;
  min-height: 300px;
}

.pc-game-block {
  position: relative;
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 0 20px 0 !important;
  margin: 0 0 20px 0 !important;
  border-bottom: 1px solid var(--pc-line) !important;
  box-sizing: border-box;
}

.pc-game-block:last-child {
  border-bottom: none !important;
  margin-bottom: 0 !important;
}

.pc-game-trigger,
.pc-game-trigger:hover,
.pc-game-trigger:focus,
.pc-game-trigger:active,
.pc-game-trigger.active {
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 20px !important;
  cursor: pointer !important;
  text-align: left !important;
  transform: none !important;
}

.pc-game-head {
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
}

.pc-game-thumb {
  width: 84px;
  height: 50px;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 6px;
  border: 1px solid var(--pc-line);
  background: rgba(255, 255, 255, 0.03);
}

.pc-game-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pc-game-headtext {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}

.pc-game-name {
  font-family: var(--pc-font-page);
  font-size: clamp(18px, 2.4vw, 22px);
  font-weight: var(--pc-weight-page);
  color: var(--pc-text);
  letter-spacing: -0.3px;
  line-height: 1.2;
}

.pc-game-state {
  font-family: var(--pc-font-page);
  font-size: 11px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--pc-muted);
}

.pc-game-state.is-open { color: var(--pc-live); }

.pc-game-state.is-full { color: var(--pc-warn); }

.pc-game-state.is-none { color: var(--pc-muted); }

.pc-game-chevron {
  font-size: 10px;
  color: var(--pc-muted);
  flex-shrink: 0;
  transition: transform 0.3s ease, color 0.2s ease;
}

.pc-game-trigger.active .pc-game-chevron {
  transform: rotate(180deg);
  color: var(--pc-text);
}

.pc-game-panel {
  display: none;
  margin-top: 22px;
  padding-left: 20px;
  border-left: 1px solid rgba(255, 255, 255, 0.25);
}

.pc-game-panel.open {
  display: block;
}

.pc-empty-note {
  font-family: var(--pc-font-page);
  font-size: 13.5px;
  font-weight: var(--pc-weight-page);
  color: var(--pc-muted);
  line-height: 1.6;
  margin: 0 0 4px 0;
  max-width: 600px;
}

/* Kasten, Statuszeile, Titel und die Angabenliste stehen seit 6.56.1 in
   app.css: Die Team-Detailseite zeigt denselben Kasten, und app.css laedt auf
   beiden Seiten. Verschoben, nicht kopiert. Was hier geblieben ist, gehoert
   der Turnierliste und nicht der Karte. */

.pc-t-entry:hover {
  border-color: rgba(120, 180, 255, 0.62);
}

.pc-t-entry:last-child {
  margin-bottom: 0;
}

.pc-t-entry.is-linked {
  border-color: var(--pc-accent);
  background: rgba(250, 67, 122, 0.06);
}

.pc-t-statusline .pc-reg-tag {
  margin-left: auto;
  text-align: right;
}

.pc-reg-tag {
  font-family: var(--pc-font-page);
  font-size: 10px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.pc-reg-tag.is-in { color: var(--pc-live); }
.pc-reg-tag.is-pending { color: var(--pc-warn); }
.pc-reg-tag.is-out { color: var(--pc-warn); }

/* Die Kennung ist seit 6.56.1 die letzte Zeile der Angabenliste, nicht mehr
   ein eigener Block darunter. Damit kommen Groesse, Zeilenhoehe, Abstand und
   die Beschriftung aus .pc-game-stats li und .pc-stat-label in app.css.
   Uebrig bleibt hier nur, was den Knopf zum Knopf macht.

   Entfallen sind: die eigenen Abstaende der Zeile, die Sonderregel
   .pc-t-idline + .pc-t-checkin (die -6 Pixel hatten den doppelten Abstand
   zwischen zwei Bloecken auszugleichen, den es nicht mehr gibt) und
   .pc-t-idlabel, dessen Element jetzt .pc-stat-label heisst. */

.pc-t-id,
.pc-t-id:focus,
.pc-t-id:active {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  margin: 0 !important;
  /* Groesse und Gewicht wie eine Angabe der Liste. Die Schrift erbt der
     Knopf nicht von allein, Browser geben Knoepfen ihre eigene. */
  font-family: var(--pc-font-page) !important;
  font-size: 13.5px !important;
  font-weight: var(--pc-weight-page) !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  /* Orange bleibt: Es ist die einzige Angabe der Liste, die etwas tut. */
  color: var(--pc-warn) !important;
  cursor: pointer !important;
  transform: none !important;
  transition: opacity 0.2s ease !important;
}

/* Ohne Unterstrich. Der gepunktete Rand darunter sah auf einer Zeile mit
   lauter schmucklosen Angaben nach einem Fehler aus; dass die Kennung
   anklickbar ist, sagen die orange Farbe, der Zeigefinger und der Titel am
   Knopf. Die Schreibmaschinenschrift bleibt, eine Kennung liest sich damit
   Zeichen fuer Zeichen. */
.pc-t-idtext {
  font-family: "droid-sans-mono", monospace;
  letter-spacing: 1px;
}

.pc-t-idhint {
  color: var(--pc-live);
  white-space: nowrap;
}

.pc-t-idhint:empty { display: none; }

.pc-t-id.is-copied .pc-t-idtext { color: var(--pc-live); }
.pc-t-id.is-failed .pc-t-idhint { color: var(--pc-accent); }

.pc-t-id:hover {
  background: none !important;
  opacity: 0.65;
  transform: none !important;
}

/* .pc-status und seine drei Zustaende stehen ebenfalls in app.css. */

.pc-stat-prize {
  color: var(--pc-live);
}

.pc-stat-pending {
  color: var(--pc-warn);
}

.pc-stat-dates {
  gap: 30px !important;
}

.pc-date-item {
  display: flex;
  gap: 8px;
  align-items: baseline;
  flex-wrap: wrap;
}

.pc-stat-late {
  color: var(--pc-warn);
}

/* ---------- Countdown der letzten Stunde ----------
   Er steht direkt unter der Statuszeile, also unter „Am Turnier
   registriert", und gilt für jeden Besucher.

   Die Uhr ist Monospace: Bei einer Proportionalschrift wechseln die Ziffern
   ihre Breite, und die Zeile zappelte im Sekundentakt. */

/* MEHR LUFT UM DEN COUNTDOWN, Roberts Vorgabe vom 17.08.2026: Er stand
   mit 10 Pixeln unter der Statuszeile und ohne jeden Abstand ueber dem
   Titel, und beides klebte an ihm.

   Die 18 unten sind der WIRKSAME Abstand: Der Titel darunter traegt
   `margin: 0 0 12px 0` und damit oben nichts, es fallen also keine
   Aussenabstaende zusammen. Der Kasten hat einen eigenen Grund und einen
   Streifen links; er soll als eigenes Stueck stehen und nicht als Teil
   der Zeile darueber oder der Ueberschrift darunter. */
.pc-t-countdown {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  margin: 18px 0 18px 0 !important;
  padding: 10px 12px;
  border-left: 2px solid var(--pc-live);
  background: rgba(69, 217, 163, 0.07);
}

.pc-t-countdown-text {
  font-family: var(--pc-font-page);
  font-size: 11px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--pc-muted);
}

.pc-t-countdown-uhr {
  font-family: "droid-sans-mono", monospace;
  font-size: 17px;
  font-weight: 400;
  letter-spacing: 1px;
  color: var(--pc-live);
}

.pc-t-countdown-jetzt {
  font-family: var(--pc-font-page);
  font-size: 13px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--pc-live);
}

.pc-t-checkin {
  font-family: var(--pc-font-page);
  font-size: 12.5px;
  font-weight: var(--pc-weight-page);
  line-height: 1.55;
  color: var(--pc-warn);
  margin: 14px 0 22px 0 !important;
  padding-left: 10px;
  border-left: 2px solid var(--pc-warn);
}

.pc-winner {
  color: var(--pc-warn) !important;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 1.5px;
}

/* Der Platzhalter, solange kein Sieger feststeht.
   Seit 6.64.0 steht die Gewinnerzeile IMMER da, als erste der Liste. Ein
   leeres .pc-winner zeigte gar nichts, die Zeile stuende dann mit
   Beschriftung und ohne Wert da und saehe aus wie ein Fehler.

   Dieselben Masse wie .pc-winner daneben, nur gedaempft statt orange: Die
   Zeile soll ihre Hoehe behalten, damit die Karte beim Abschluss des
   Turniers nicht springt. */
.pc-winner-open {
  color: var(--pc-muted) !important;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 1.5px;
}

.pc-game-action {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.pc-cta {
  display: inline-block;
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 0 4px 0 !important;
  margin: 0 !important;
  color: var(--pc-text) !important;
  font-family: var(--pc-font-page) !important;
  font-size: 13px !important;
  font-weight: var(--pc-weight-page) !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--pc-text) !important;
  cursor: pointer !important;
  transform: none !important;
  transition: opacity 0.2s ease, border-color 0.2s ease !important;
}

.pc-cta:hover {
  background: none !important;
  opacity: 0.6;
  transform: none !important;
  border-bottom-color: var(--pc-accent) !important;
}

.pc-cta-closed {
  font-family: var(--pc-font-page);
  font-size: 13px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--pc-muted);
}

.pc-link-btn,
.pc-link-btn:focus,
.pc-link-btn:active {
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 0 4px 0 !important;
  margin: 0 !important;
  color: var(--pc-muted) !important;
  font-family: var(--pc-font-page) !important;
  font-size: 13px !important;
  font-weight: var(--pc-weight-page) !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transform: none !important;
  border-bottom: 1px solid transparent !important;
  transition: color 0.2s ease, border-color 0.2s ease !important;
}

.pc-link-btn:hover {
  background: none !important;
  color: var(--pc-text) !important;
  border-bottom-color: var(--pc-text) !important;
  transform: none !important;
  opacity: 1 !important;
}

.pc-t-panel {
  display: none;
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid rgba(120, 180, 255, 0.30);
  width: 100%;
}

.pc-t-panel.open {
  display: block;
}

.pc-section-title {
  font-family: var(--pc-font-page);
  font-size: 12px;
  font-weight: var(--pc-weight-page);
  color: var(--pc-muted) !important;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin: 0 0 16px 0 !important;
}

.pc-bracket {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  overflow-x: auto;
  padding-bottom: 10px;
}

.pc-round {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 165px;
}

.pc-round-title {
  font-family: var(--pc-font-page);
  font-size: 11px;
  font-weight: var(--pc-weight-page);
  color: var(--pc-accent);
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 16px;
  text-align: center;
}

.pc-matches {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  flex-grow: 1;
  gap: 12px;
}

.pc-match {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--pc-line);
  border-radius: 8px;
  padding: 12px;
  font-family: var(--pc-font-page);
  font-size: 13px;
  font-weight: var(--pc-weight-page);
  text-align: center;
  line-height: 1.5;
}

.pc-match-a {
  color: var(--pc-muted);
  padding-bottom: 6px;
}

.pc-match-b {
  color: var(--pc-muted);
  border-top: 1px solid var(--pc-line);
  padding-top: 6px;
}

.pc-match-a.is-winner,
.pc-match-b.is-winner {
  color: var(--pc-text);
  font-weight: 700;
}

.pc-match-a.is-loser,
.pc-match-b.is-loser {
  color: rgba(255, 255, 255, 0.28);
}

.pc-match-a.is-cancelled,
.pc-match-b.is-cancelled {
  color: rgba(255, 255, 255, 0.28);
  text-decoration: line-through;
}

.pc-match-note {
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px solid var(--pc-line);
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--pc-warn);
}

/* Der Anstoss einer einzelnen Partie. Ruhiger als der Vermerk daneben: Er
   ist eine Angabe, keine Warnung, und steht an jeder angesetzten Paarung. */
.pc-match-time {
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px solid var(--pc-line);
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--pc-muted);
}

.pc-champ-banner {
  margin: 0 0 26px 0;
  padding: 14px 16px;
  border-left: 2px solid var(--pc-gold);
  background: rgba(245, 213, 110, 0.08);
  box-sizing: border-box;
}

.pc-champ-banner-tag {
  display: block;
  font-family: var(--pc-font-page);
  font-size: 10px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--pc-gold);
  margin-bottom: 6px;
}

.pc-champ-banner-text {
  font-family: var(--pc-font-page);
  font-size: 13.5px;
  font-weight: var(--pc-weight-page);
  line-height: 1.6;
  color: var(--pc-muted) !important;
  margin: 0 !important;
}

.pc-champ-banner-text strong {
  color: var(--pc-gold);
}

.pc-round-champion .pc-matches {
  justify-content: center;
}

.pc-champion-box {
  background: rgba(245, 213, 110, 0.1);
  border: 1px solid rgba(245, 213, 110, 0.5);
  border-radius: 8px;
  padding: 16px 14px;
  font-family: var(--pc-font-page);
  font-size: 15px;
  font-weight: 700;
  color: var(--pc-gold);
  text-align: center;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.pc-roster {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.pc-roster li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 20px;
  padding: 12px 0;
  border-bottom: 1px solid var(--pc-line);
  font-family: var(--pc-font-page);
  font-size: 13.5px;
  font-weight: var(--pc-weight-page);
  color: var(--pc-text);
}

.pc-roster li:last-child {
  border-bottom: none;
}

.pc-roster li.is-pending {
  color: var(--pc-muted);
}

.pc-roster-players {
  color: var(--pc-muted);
  font-size: 12.5px;
  margin-left: 10px;
}

.pc-roster-state {
  color: var(--pc-live);
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  white-space: nowrap;
}

.pc-roster-state.is-pending {
  color: var(--pc-warn);
}

.pc-debug {
  font-family: var(--pc-font-page);
  font-size: 14px;
  color: var(--pc-warn);
  padding: 20px 0;
}

/* Der Kopfbereich der Einzelseite (.pc-tournament-head) ist mit 6.88.0
   entfallen. Seine Breitenregel stand hier, die des Inhalts weiter unten
   an .pc-tournament-detail; uebrig ist die zweite. */

@media (max-width: 1100px) {
  .pc-games-container {
    width: 88%;
  }
}

@media (max-width: 768px) {
  .pc-games-container {
    width: 100%;
    padding: 0 var(--pc-edge) !important;
  }

  .pc-game-head {
    gap: 14px;
  }

  .pc-game-thumb {
    width: 62px;
    height: 40px;
  }

  .pc-game-panel {
    border-left: none;
    border: 1px solid rgba(255, 255, 255, 0.22);
    padding: 18px 14px;
    margin-top: 18px;
  }

  .pc-stat-dates {
    flex-direction: column;
    gap: 6px !important;
  }

  /* Die Sonderabstaende der Kennungszeile sind entfallen: Sie ist jetzt eine
     Zeile der Angabenliste und teilt deren Abstaende. */

  .pc-roster li {
    flex-direction: column;
    gap: 4px;
  }

  .pc-roster-players {
    display: block;
    margin-left: 0;
  }
}

/* Die Filterleiste (.pc-filter-bar, .pc-filter-btn,
   .pc-filter-count) steht seit 6.94.0 in app.css. Die Stats-Seite
   filtert ihre Turnier-Historie mit denselben Knoepfen, und
   app.css laedt auf beiden Seiten - tournaments.css nur auf einer.
   VERSCHOBEN, NICHT KOPIERT, dieselbe Bewegung wie beim
   Zurueck-Knopf mit 6.56.0. */

/* ---------- Rollen vor Spielernamen ---------- */

.pc-roster-players .pc-player {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  margin-right: 16px;
  white-space: nowrap;
}

/* HIER STAND BIS 7.3.0 EINE KORREKTUR, UND SIE IST ERSATZLOS ENTFALLEN.
   Der Turnierbaum ist die einzige Stelle, an der die Namenszeile ein
   Flex-Behälter mit `align-items: baseline` ist. Das rund gefasste
   Abzeichen hatte dort keine brauchbare Grundlinie - ein Element ohne Text
   setzt sie an seinen unteren Rand -, und `align-self: center` aus
   base.css traf die Mitte der ZEILE statt die der Versalien. Die 0,075em
   aus 6.60.1 haben genau das ausgeglichen.

   Seit 7.3.0 trägt die Rangbox einen Strut: Ein ::before mit einem
   Nullbreiten-Leerzeichen legt ihre Grundlinie auf die der Schrift, und
   `align-self: baseline` richtet sie damit von selbst am Namen aus. Auf
   der Bühne mit diesem Stylesheet nachgemessen: 0,055em Versatz mit dem
   Strut, gegen 0,085em mit der alten Korrektur. Sie ist damit nicht nur
   überflüssig, sondern schlechter.

   Wer den Strut in site.css entfernt, braucht sie zurück. */

/* Rolle steht jetzt hinter dem Namen, in Klammern. */
.pc-player-role {
  margin-left: 0.4em;
  font-family: var(--pc-font-page);
  font-size: 9.5px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 1.2px;
  text-transform: uppercase;
}

@media (max-width: 768px) {
  .pc-roster-players .pc-player { margin-right: 12px; }
}

/* ---------- Best of je Runde ---------- */

.pc-stat-bestof {
  align-items: flex-start;
}

.pc-bo-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: center;
}

.pc-bo-item {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 3px 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  white-space: nowrap;
}

.pc-bo-round {
  font-family: var(--pc-font-page);
  font-size: 11px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 0.4px;
  color: var(--pc-muted);
}

.pc-bo-mode {
  font-family: "droid-sans-mono", monospace;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.4px;
  color: var(--pc-info);
}

.pc-round-mode {
  margin: -6px 0 10px 0;
  font-family: "droid-sans-mono", monospace;
  font-size: 10.5px;
  letter-spacing: 1px;
  text-align: center;
  color: var(--pc-info);
}

/* Der Punktestand steht rechts neben dem Team, in einer eigenen Spalte, damit
   die Zahlen aller Paarungen untereinander stehen. */
.pc-match-a,
.pc-match-b {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.pc-match-team {
  overflow-wrap: break-word;
  word-wrap: break-word;
  min-width: 0;
}

.pc-match-score {
  flex: 0 0 auto;
  font-family: "droid-sans-mono", monospace;
  font-size: 13px;
  font-weight: 400;
  color: var(--pc-muted);
}

.pc-match-a.is-winner .pc-match-score,
.pc-match-b.is-winner .pc-match-score {
  color: var(--pc-live);
  font-weight: 700;
}

@media (max-width: 620px) {
  .pc-bo-list { gap: 5px 7px; }
}

/* ---------- Turnier verlassen ---------- */

.pc-leave-btn,
.pc-leave-btn:focus,
.pc-leave-btn:active,
.pc-leave-cancel,
.pc-leave-cancel:focus,
.pc-leave-cancel:active {
  display: inline-block;
  background: none !important;
  background-color: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 7px 12px !important;
  margin: 0 8px 0 0 !important;
  color: var(--pc-muted) !important;
  font-family: var(--pc-font-page) !important;
  font-size: 10.5px !important;
  font-weight: var(--pc-weight-page) !important;
  letter-spacing: 1.3px !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transform: none !important;
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease !important;
}

.pc-leave-btn:hover,
.pc-leave-cancel:hover {
  background: none !important;
  color: var(--pc-text) !important;
  border-color: rgba(255, 255, 255, 0.5) !important;
  transform: none !important;
}

.pc-leave-btn.is-armed {
  color: #FFFFFF !important;
  border-color: var(--pc-accent) !important;
  background: rgba(250, 67, 122, 0.16) !important;
  font-weight: 700 !important;
}

.pc-leave-btn.is-armed:hover {
  background: rgba(250, 67, 122, 0.26) !important;
  border-color: var(--pc-accent) !important;
}

.pc-leave-note,
.pc-leave-locked {
  display: block;
  margin-top: 8px;
  font-family: var(--pc-font-page);
  font-size: 11px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 0.6px;
  color: var(--pc-muted);
  line-height: 1.5;
}

.pc-leave-locked { color: var(--pc-warn); }

.pc-history-leave {
  display: block;
  margin: 12px 0 4px 0;
}

.pc-t-leave {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  margin: 0 0 14px 0;
}

.pc-t-leave .pc-leave-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.pc-t-leave .pc-leave-btn,
.pc-t-leave .pc-leave-cancel {
  margin: 0 !important;
}

.pc-t-leave .pc-leave-note,
.pc-t-leave .pc-leave-locked {
  text-align: right;
  margin-top: 7px;
}

@media (max-width: 620px) {
  .pc-t-leave {
    align-items: stretch;
    text-align: left;
  }
  .pc-t-leave .pc-leave-actions { justify-content: flex-start; }
  .pc-t-leave .pc-leave-note,
  .pc-t-leave .pc-leave-locked { text-align: left; }
}

.pc-t-leave .pc-feedback {
  display: none;
  text-align: left;
  margin-top: 10px;
  padding: 9px 13px;
  font-family: var(--pc-font-page);
  font-size: 12.5px;
  font-weight: var(--pc-weight-page);
  line-height: 1.5;
  max-width: 460px;
}

.pc-t-leave .pc-feedback.success {
  display: block;
  background: rgba(69, 217, 163, 0.1);
  border-left: 2px solid var(--pc-live);
  color: var(--pc-live);
}

.pc-t-leave .pc-feedback.error {
  display: block;
  background: rgba(250, 67, 122, 0.1);
  border-left: 2px solid var(--pc-accent);
  color: var(--pc-accent);
}

.pc-t-leave .pc-feedback.pending {
  display: block;
  background: rgba(255, 255, 255, 0.03);
  border-left: 2px solid rgba(255, 255, 255, 0.2);
  color: var(--pc-muted);
}

.pc-reg-short { display: none; }

.pc-reg-tag.is-guest {
  color: var(--pc-muted) !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.28);
  padding-bottom: 2px;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.pc-reg-tag.is-guest:hover {
  color: var(--pc-text) !important;
  border-bottom-color: var(--pc-text);
}

@media (max-width: 768px) {

  .pc-t-statusline .pc-reg-tag {
    margin-left: auto;
    text-align: right;
    flex: 0 1 auto;
  }

  .pc-reg-tag {
    font-size: 9.5px;
    letter-spacing: 1px;
  }

  .pc-reg-full { display: none !important; }
  .pc-reg-short { display: inline !important; }
}

/* ---------- Kompakte Turnierliste ---------- */

.pc-trow-list {
  display: flex;
  flex-direction: column;
}

.pc-trow {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 16px 18px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-left: 2px solid rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.02);
  margin-bottom: 10px;
  text-decoration: none !important;
  box-sizing: border-box;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}

.pc-trow:last-child { margin-bottom: 0; }

.pc-trow:hover {
  background: rgba(255, 255, 255, 0.05);
  border-left-color: var(--pc-accent);
  transform: translateX(2px);
}

.pc-trow-state {
  flex: 0 0 auto;
  min-width: 84px;
  font-family: var(--pc-font-page);
  font-size: 10px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.pc-trow-state.is-open { color: var(--pc-live); }
.pc-trow-state.is-full { color: var(--pc-warn); }
.pc-trow-state.is-done { color: var(--pc-muted); }

.pc-trow-main {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1 1 auto;
  min-width: 0;
}

.pc-trow-name {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  font-family: var(--pc-font-page);
  font-size: 15.5px;
  font-weight: 700;
  color: var(--pc-text);
  letter-spacing: -0.2px;
  overflow-wrap: anywhere;
}

.pc-trow-mine {
  font-family: var(--pc-font-page);
  font-size: 12px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--pc-warn);
}

.pc-trow-mine.is-in { color: var(--pc-live); }
.pc-trow-mine.is-pending { color: var(--pc-warn); }
.pc-trow-mine.is-out { color: var(--pc-warn); }

.pc-trow-meta {
  font-family: var(--pc-font-page);
  font-size: 12px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--pc-muted);
}

.pc-trow-sep {
  color: rgba(255, 255, 255, 0.22);
  margin: 0 8px;
}

.pc-trow-side {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
}

.pc-trow-slots {
  font-family: var(--pc-font-page);
  font-size: 11px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--pc-live);
  white-space: nowrap;
}

.pc-trow-winner {
  font-family: var(--pc-font-page);
  font-size: 11px;
  font-weight: var(--pc-weight-page);
  color: var(--pc-gold);
  white-space: nowrap;
  overflow-wrap: anywhere;
}

.pc-trow-arrow {
  font-size: 17px;
  line-height: 1;
  color: var(--pc-muted);
  transition: color 0.2s ease, transform 0.2s ease;
}

.pc-trow:hover .pc-trow-arrow {
  color: var(--pc-text);
  transform: translateX(3px);
}

/* ---------- Einzelseite eines Turniers ---------- */

.pc-tournament-detail {
  width: var(--pc-width);
  max-width: var(--pc-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 60px !important;
  padding: 0 !important;
  box-sizing: border-box;
}

/* Der Zurueck-Knopf steht seit 6.56.0 in app.css: Die Team-Seite hat
   dieselbe Detailansicht, und app.css laedt auf beiden. Verschoben, nicht
   kopiert. */

.pc-tournament-detail .pc-t-entry {
  margin-bottom: 30px;
}

@media (max-width: 1100px) {
  .pc-tournament-detail { width: 88%; }
}

@media (max-width: 768px) {
  .pc-tournament-detail {
    width: 100%;
    padding: 0 var(--pc-edge) !important;
  }

  .pc-trow {
    flex-wrap: wrap;
    gap: 8px 14px;
    padding: 14px 14px;
  }

  .pc-trow-state { min-width: 0; }

  .pc-trow-main { flex: 1 1 100%; order: 3; }

  .pc-trow-side {
    margin-left: auto;
    gap: 10px;
  }

  .pc-trow-name { font-size: 14.5px; }
}

/* ---------- Check-in ---------- */

.pc-checkin {
  display: block;
  margin: 12px 0;
}

.pc-checkin-btn,
.pc-checkin-btn:focus,
.pc-checkin-btn:active {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: rgba(69, 217, 163, 0.1) !important;
  background-color: rgba(69, 217, 163, 0.1) !important;
  border: 1px solid var(--pc-live) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 10px 18px !important;
  margin: 0 !important;
  color: var(--pc-live) !important;
  font-family: var(--pc-font-page) !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transform: none !important;
  transition: background 0.2s ease, border-color 0.2s ease !important;
}

.pc-checkin-btn:hover:not([disabled]) {
  background: rgba(69, 217, 163, 0.2) !important;
  transform: none !important;
}

.pc-checkin-btn.is-locked,
.pc-checkin-btn.is-locked:focus {
  background: none !important;
  background-color: transparent !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: var(--pc-muted) !important;
  cursor: not-allowed !important;
  opacity: 0.75;
}

.pc-checkin-btn.is-done,
.pc-checkin-btn.is-done:focus {
  background: rgba(69, 217, 163, 0.16) !important;
  border-color: var(--pc-live) !important;
  color: var(--pc-live) !important;
  cursor: default !important;
}

.pc-checkin-btn[disabled] { pointer-events: auto; }

.pc-checkin-hint {
  display: block;
  margin-top: 7px;
  font-family: var(--pc-font-page);
  font-size: 11.5px;
  font-weight: var(--pc-weight-page);
  line-height: 1.5;
  letter-spacing: 0.4px;
  color: var(--pc-muted);
  max-width: 460px;
}

/* Nach einem erfolgreichen Check-in traegt der Hinweis die Bestaetigung
   des Servers, siehe ciSenden() in site.js. Zeichengleich die Regel in
   account.css - derselbe Baustein auf beiden Seiten.

   EINE EIGENE REGEL, KEINE ZUSTANDSLISTE, und sie steht VOR den
   Medienabfragen: Die Abfrage bei 769px setzt an derselben Klasse order,
   flex und margin-top, aber keine Farbe; es gibt also keine Kollision. */
.pc-checkin-hint.is-done { color: var(--pc-live); }

.pc-checkin .pc-feedback {
  display: none;
  margin-top: 9px;
  padding: 8px 12px;
  font-family: var(--pc-font-page);
  font-size: 12.5px;
  font-weight: var(--pc-weight-page);
  line-height: 1.5;
  max-width: 460px;
}

.pc-checkin .pc-feedback.success {
  display: block;
  background: rgba(69, 217, 163, 0.1);
  border-left: 2px solid var(--pc-live);
  color: var(--pc-live);
}

.pc-checkin .pc-feedback.error {
  display: block;
  background: rgba(250, 67, 122, 0.1);
  border-left: 2px solid var(--pc-accent);
  color: var(--pc-accent);
}

.pc-checkin .pc-feedback.pending {
  display: block;
  background: rgba(255, 255, 255, 0.03);
  border-left: 2px solid rgba(255, 255, 255, 0.2);
  color: var(--pc-muted);
}

.pc-history-checkin { display: block; margin-top: 10px; }

/* ---------- Monatsüberschriften in der Liste ---------- */

.pc-month-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  margin: 22px 0 10px 0;
  padding-bottom: 7px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.pc-month-head:first-child { margin-top: 4px; }

.pc-month-label {
  font-family: var(--pc-font-page);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--pc-gold);
}

.pc-month-open,
.pc-month-closed {
  font-family: var(--pc-font-page);
  font-size: 10.5px;
  font-weight: var(--pc-weight-page);
  letter-spacing: 1.4px;
  text-transform: uppercase;
  margin-left: auto;
  white-space: nowrap;
}

.pc-month-open { color: var(--pc-live); }
.pc-month-closed { color: var(--pc-muted); }

@media (max-width: 620px) {
  .pc-month-head { gap: 6px 10px; }
  .pc-month-open,
  .pc-month-closed { margin-left: 0; }
}

/* ---------- Eigene Aktionen am Ende der Turnierkarte ---------- */

.pc-t-owner-actions {
  display: block;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  text-align: left;
}

.pc-t-owner-actions .pc-checkin {
  margin: 0 0 16px 0;
}

/* ---------------------------------------------------------------
 * DER CHECK-IN-KNOPF STEHT AM RECHNER RECHTS
 *
 * Robert am 17.08.2026: "baue NUR auf der Desktop Version den 'JETZT
 * EINCHECKEN' Button auf die Rechte Seite unten rechts."
 *
 * Der Block ist das letzte Stueck der Turnierkarte; der Knopf sitzt damit
 * unten rechts, der erklaerende Satz daneben links.
 *
 * UEBER order UND NICHT UEBER DIE REIHENFOLGE IM MARKUP: Am Telefon soll
 * der Knopf oben bleiben, wo er seit jeher steht - man tippt ihn, den
 * Satz liest man danach. Ein Umbau des Markups traefe beide Breiten.
 *
 * Die Medienabfrage ist die GENAUE UMKEHRUNG der 768er weiter unten in
 * dieser Datei. Ohne diese Sauberkeit gaebe es einen Bereich, in dem
 * beides oder keins von beidem gilt.
 *
 * Die Rueckmeldung nimmt eine eigene Zeile (flex-basis 100%): Sie
 * erscheint erst nach dem Klick, und stuende sie in derselben Zeile,
 * spraenge der Knopf in dem Augenblick zur Seite, in dem man ihn
 * gedrueckt hat.
 *
 * NUR IN DER TURNIERKARTE ueber .pc-t-owner-actions: Denselben Baustein
 * .pc-checkin traegt die Stats-Seite, und dort steht er in einer engen
 * Spalte, in der ein Knopf am rechten Rand nichts gewinnt.
 * ------------------------------------------------------------- */
@media (min-width: 769px) {
  .pc-t-owner-actions .pc-checkin {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
  }

  .pc-t-owner-actions .pc-checkin-hint {
    order: 1;
    flex: 1 1 300px;
    margin-top: 0;
  }

  .pc-t-owner-actions .pc-checkin-btn {
    order: 2;
    flex: 0 0 auto;
  }

  .pc-t-owner-actions .pc-checkin .pc-feedback {
    order: 3;
    flex: 1 1 100%;
  }
}

.pc-t-owner-actions .pc-t-leave {
  display: block;
  align-items: flex-start;
  text-align: left;
  margin: 0;
}

.pc-t-owner-actions .pc-leave-actions {
  justify-content: flex-start;
}

.pc-t-owner-actions .pc-leave-note,
.pc-t-owner-actions .pc-leave-locked {
  text-align: left;
}

.pc-t-owner-actions .pc-checkin-hint,
.pc-t-owner-actions .pc-leave-note {
  max-width: 520px;
}
