/* Tabelle TT-Liga – Layout angelehnt an Teamarchiv gsvTT.
   Alle Größen hängen an --gt-scale (Menüeintrag "Größe in %"). */
.gsvtabelle {
  --gt-scale: 1;
  --gt-head-bg: #79afeb;
  --gt-head-fg: #000000;
  --gt-row1: #ffffff;
  --gt-row2: #f2f2f2;
  --gt-text: #000000;
  --gt-border: #d6d6d6;
  --gt-own-bg: #f5c1bc;
  --gt-up: #2e8b57;
  --gt-rel: #9a9a9a;
  --gt-down: #c0392b;
  --gt-date: #a0a0a0;
  --gt-ebene: #666666;
  width: 100%;
  font-size: calc(12px * var(--gt-scale) * var(--gt-fit, 1));
}
.gsvtabelle.align-center { text-align: center; }
.gsvtabelle.align-left   { text-align: left; }
.gsvtabelle.align-right  { text-align: right; }

/* Überschrift: Größe/Schrift kommen vom Template (h2 wie Teamarchiv) */
.gsvtabelle .headline { margin: 0 0 .25rem; }
.gsvtabelle .page-header { margin-bottom: 1.25rem; }
.gsvtabelle .gsvtabelle-spielebene { margin: 0 0 .15rem; font-size: .95rem; color: var(--gt-ebene); }

/* Box: Tabelle + Datenstand als Einheit, damit "Datenstand" direkt unter der Tabelle steht */
.gsvtabelle .gsvtabelle-box { display: inline-block; max-width: 100%; text-align: left; vertical-align: top; }
.gsvtabelle.width-full .gsvtabelle-box { display: block; }
.gsvtabelle .gsvtabelle-table-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* Tabelle – Selektoren bewusst spezifisch, damit Template-Tabellenstile nicht überschreiben */
.gsvtabelle table.gsvtabelle-table { border-collapse: collapse; margin: 0; font-size: 1em; line-height: 1.3; color: var(--gt-text); background: var(--gt-row1); }
.gsvtabelle.width-full table.gsvtabelle-table { width: 100%; }
.gsvtabelle table.gsvtabelle-table th,
.gsvtabelle table.gsvtabelle-table td { font-size: 1em; line-height: 1.3; padding: .3em .55em; white-space: nowrap; vertical-align: middle; border: 0; box-shadow: none; }
.gsvtabelle.pad-compact table.gsvtabelle-table th,
.gsvtabelle.pad-compact table.gsvtabelle-table td { padding: .15em .4em; }
.gsvtabelle.pad-wide table.gsvtabelle-table th,
.gsvtabelle.pad-wide table.gsvtabelle-table td { padding: .5em .8em; }

.gsvtabelle table.gsvtabelle-table thead th { background: var(--gt-head-bg); color: var(--gt-head-fg); font-weight: 600; text-align: center; }
.gsvtabelle table.gsvtabelle-table thead th.col-team { text-align: left; }
.gsvtabelle table.gsvtabelle-table tbody tr.odd  > td { background: var(--gt-row1); }
.gsvtabelle table.gsvtabelle-table tbody tr.even > td { background: var(--gt-row2); }
.gsvtabelle table.gsvtabelle-table tbody tr.own-bg > td { background: var(--gt-own-bg); }
.gsvtabelle table.gsvtabelle-table tbody tr.own-bold > td { font-weight: 700; }

.gsvtabelle table.gsvtabelle-table td.num { text-align: center; }
.gsvtabelle table.gsvtabelle-table td.col-rank { text-align: right; }
.gsvtabelle table.gsvtabelle-table td.col-team { text-align: left; }
.gsvtabelle table.gsvtabelle-table td.col-points { font-weight: 600; }
.gsvtabelle table.gsvtabelle-table td.col-team a { color: inherit; text-decoration: none; }
.gsvtabelle table.gsvtabelle-table td.col-team a:hover { text-decoration: underline; }
.gsvtabelle table.gsvtabelle-table th.col-tendency,
.gsvtabelle table.gsvtabelle-table td.col-tendency { width: 1.4em; padding-right: 0; text-align: center; }

/* Auf-/Abstiegszeichen */
.gsvtabelle .tend { font-size: .85em; cursor: help; }
.gsvtabelle .tend-up { color: var(--gt-up); }
.gsvtabelle .tend-relup, .gsvtabelle .tend-reldown { color: var(--gt-rel); }
.gsvtabelle .tend-down { color: var(--gt-down); }

/* Linien */
.gsvtabelle.borders-rows table.gsvtabelle-table tbody td { border-bottom: 1px solid var(--gt-border); }
.gsvtabelle.borders-all table.gsvtabelle-table th,
.gsvtabelle.borders-all table.gsvtabelle-table td { border: 1px solid var(--gt-border); }
/* Kein Rahmen oben und rechts – auch gegen Rahmen, die das Template allen Tabellen gibt.
   Innere Linien bleiben erhalten (sie kommen aus border-bottom bzw. border-left der Nachbarzelle). */
.gsvtabelle table.gsvtabelle-table,
.gsvtabelle .gsvtabelle-table-wrap,
.gsvtabelle .gsvtabelle-box { border: 0 !important; outline: 0 !important; box-shadow: none !important; }
.gsvtabelle table.gsvtabelle-table thead,
.gsvtabelle table.gsvtabelle-table tbody,
.gsvtabelle table.gsvtabelle-table tr { border: 0 !important; box-shadow: none !important; }
.gsvtabelle table.gsvtabelle-table th,
.gsvtabelle table.gsvtabelle-table td { border-top: 0 !important; border-right: 0 !important; }
.gsvtabelle:not(.borders-all) table.gsvtabelle-table th,
.gsvtabelle:not(.borders-all) table.gsvtabelle-table td { border-left: 0 !important; }
.gsvtabelle:not(.borders-all) table.gsvtabelle-table thead th { border-bottom: 0 !important; }
.gsvtabelle.borders-none table.gsvtabelle-table td { border-bottom: 0 !important; }

/* Datenstand: klein, hellgrau, direkt unter der Tabelle */
.gsvtabelle .gsvtabelle-datenstand { margin: .35em 0 0; font-size: .8em; color: var(--gt-date); }

.gsvtabelle .copyright { margin-top: 1rem; font-size: .85rem; }
.gsvtabelle .gsvtabelle-error { text-align: left; }

@media (max-width: 900px) {
  .gsvtabelle.align-center, .gsvtabelle.align-right { text-align: left; }
}

/* Mehrere Tabellen untereinander */
.gsvtabelle-list:not(.gsvtabelle-grid) > .gsvtabelle + .gsvtabelle { margin-top: 2.5rem; }

/* Copyright-Link: nie unterstrichen – auch gegen Template-Regeln mit Rahmen/Schatten/Hintergrund */
.gsvtabelle .copyright a.gsvtabelle-author,
.gsvtabelle .copyright a.gsvtabelle-author:hover,
.gsvtabelle .copyright a.gsvtabelle-author:focus,
.gsvtabelle .copyright a.gsvtabelle-author:visited {
  text-decoration: none !important; border-bottom: 0 !important; box-shadow: none !important; background-image: none !important;
}
.gsvtabelle .copyright a.gsvtabelle-author::after,
.gsvtabelle .copyright a.gsvtabelle-author::before { content: none !important; }

/* Automatisch ausgeblendete Spalten (nur wenn Verkleinern nicht reicht) */
.gsvtabelle[data-gt-hide] .col-games,
.gsvtabelle[data-gt-hide="2"] .col-diff, .gsvtabelle[data-gt-hide="3"] .col-diff, .gsvtabelle[data-gt-hide="4"] .col-diff,
.gsvtabelle[data-gt-hide="3"] .col-matches, .gsvtabelle[data-gt-hide="4"] .col-matches,
.gsvtabelle[data-gt-hide="4"] .col-won, .gsvtabelle[data-gt-hide="4"] .col-draw, .gsvtabelle[data-gt-hide="4"] .col-lost { display: none; }

/* Spielklasse (Überschrift) und Spielebene immer einzeilig; das Skript gleicht die
   Schriftgröße aller Tabellen einer Liste an. Ohne Skript: Auslassungspunkte. */
.gsvtabelle .page-header .headline,
.gsvtabelle .page-header .gsvtabelle-spielebene { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }

/* Mehrere Tabellen: Datenstand einmal über der Copyright-Zeile */
.gsvtabelle .gsvtabelle-datenstand-footer { margin: 1.5rem 0 0; font-size: .75rem; }
.gsvtabelle .gsvtabelle-datenstand-footer + .copyright { margin-top: .25rem; }

/* Zeilentexte vertikal zentriert – auch gegen Template-Regeln (vertical-align: top/baseline) */
.gsvtabelle table.gsvtabelle-table th,
.gsvtabelle table.gsvtabelle-table td { vertical-align: middle !important; line-height: 1.3 !important; }
.gsvtabelle table.gsvtabelle-table td > a,
.gsvtabelle table.gsvtabelle-table td > .tend { vertical-align: middle; line-height: 1; }

/* Kopfzeile (PL, Mannschaft, ...) etwas höher */
.gsvtabelle table.gsvtabelle-table thead th { padding-top: .55em; padding-bottom: .55em; }
.gsvtabelle.pad-compact table.gsvtabelle-table thead th { padding-top: .35em; padding-bottom: .35em; }
.gsvtabelle.pad-wide table.gsvtabelle-table thead th { padding-top: .8em; padding-bottom: .8em; }

/* Mehrere Tabellen nebeneinander: x Spalten, weitere Tabellen in neuer Zeile links beginnend */
.gsvtabelle-list.gsvtabelle-grid {
  display: grid;
  grid-template-columns: repeat(var(--gt-cols, 2), minmax(0, 1fr));
  gap: 2.5rem 2rem;
  justify-content: start;
  align-items: start;
}
/* Schmale Bildschirme: untereinander */
@media (max-width: 767px) {
  .gsvtabelle-list.gsvtabelle-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Gemeinsamer Fußbereich (Datenstand bei mehreren Tabellen + Copyright) */
.gsvtabelle.gsvtabelle-footer .gsvtabelle-datenstand-footer { margin-top: 1.5rem; }
.gsvtabelle.gsvtabelle-footer .copyright { margin-top: 1rem; }
.gsvtabelle.gsvtabelle-footer .gsvtabelle-datenstand-footer + .copyright { margin-top: .25rem; }

/* Copyright-Zeile und Datenstand-Zeile: gleicher Grauton und gleiche Größe wie
   der Datenstand unter der Tabelle (Farbe "Datenstand" im Reiter Farben) */
.gsvtabelle .copyright,
.gsvtabelle .gsvtabelle-datenstand-footer,
.gsvtabelle.gsvtabelle-footer .copyright,
.gsvtabelle.gsvtabelle-footer .gsvtabelle-datenstand-footer { font-size: .8em; line-height: 1.4; color: var(--gt-date); }
.gsvtabelle .copyright a.gsvtabelle-author,
.gsvtabelle .copyright a.gsvtabelle-author:hover,
.gsvtabelle .copyright a.gsvtabelle-author:focus,
.gsvtabelle .copyright a.gsvtabelle-author:visited { color: inherit !important; }
/* Copyright direkt unter dem Datenstand (bei einer Tabelle steht dieser unter der Tabelle) */
.gsvtabelle.gsvtabelle-footer .copyright { margin: .35em 0 0; }
.gsvtabelle.gsvtabelle-footer .gsvtabelle-datenstand-footer { margin: 1.5rem 0 0; }
.gsvtabelle.gsvtabelle-footer .gsvtabelle-datenstand-footer + .copyright { margin-top: .15em; }

/* Außenrahmen je Seite (Reiter Layout: Rahmen oben/unten/links/rechts) – Farbe "Linien" */
.gsvtabelle.frame-top table.gsvtabelle-table    { border-top: 1px solid var(--gt-border) !important; }
.gsvtabelle.frame-bottom table.gsvtabelle-table { border-bottom: 1px solid var(--gt-border) !important; }
.gsvtabelle.frame-left table.gsvtabelle-table   { border-left: 1px solid var(--gt-border) !important; }
.gsvtabelle.frame-right table.gsvtabelle-table  { border-right: 1px solid var(--gt-border) !important; }

/* Runde Ecken (Reiter Layout) – "Wie Template" ändert nichts.
   Gerundet wird der Rahmen um die Tabelle (schmiegt sich an die Tabelle an und schneidet die Ecken ab). */
.gsvtabelle:not(.corners-template) table.gsvtabelle-table,
.gsvtabelle:not(.corners-template) table.gsvtabelle-table th,
.gsvtabelle:not(.corners-template) table.gsvtabelle-table td,
.gsvtabelle:not(.corners-template) .gsvtabelle-table-wrap { border-radius: 0 !important; }
.gsvtabelle.rounded .gsvtabelle-table-wrap { display: inline-block; vertical-align: top; max-width: 100%; overflow-y: hidden; }
.gsvtabelle.rounded.width-full .gsvtabelle-table-wrap { display: block; }
.gsvtabelle.rounded.corners-top .gsvtabelle-table-wrap    { border-radius: calc(var(--gt-radius, 6px) * var(--gt-scale)) calc(var(--gt-radius, 6px) * var(--gt-scale)) 0 0 !important; }
.gsvtabelle.rounded.corners-bottom .gsvtabelle-table-wrap { border-radius: 0 0 calc(var(--gt-radius, 6px) * var(--gt-scale)) calc(var(--gt-radius, 6px) * var(--gt-scale)) !important; }
.gsvtabelle.rounded.corners-all .gsvtabelle-table-wrap    { border-radius: calc(var(--gt-radius, 6px) * var(--gt-scale)) !important; }
/* Bei runden Ecken sitzt der Außenrahmen am Rahmen um die Tabelle, damit er der Rundung folgt */
.gsvtabelle.rounded.frame-top table.gsvtabelle-table    { border-top: 0 !important; }
.gsvtabelle.rounded.frame-bottom table.gsvtabelle-table { border-bottom: 0 !important; }
.gsvtabelle.rounded.frame-left table.gsvtabelle-table   { border-left: 0 !important; }
.gsvtabelle.rounded.frame-right table.gsvtabelle-table  { border-right: 0 !important; }
.gsvtabelle.rounded.frame-top .gsvtabelle-table-wrap    { border-top: 1px solid var(--gt-border) !important; }
.gsvtabelle.rounded.frame-bottom .gsvtabelle-table-wrap { border-bottom: 1px solid var(--gt-border) !important; }
.gsvtabelle.rounded.frame-left .gsvtabelle-table-wrap   { border-left: 1px solid var(--gt-border) !important; }
.gsvtabelle.rounded.frame-right .gsvtabelle-table-wrap  { border-right: 1px solid var(--gt-border) !important; }
/* Unterste Zeilenlinie entfällt, wenn unten gerundet bzw. eingerahmt wird (sonst doppelt) */
.gsvtabelle.rounded.frame-bottom table.gsvtabelle-table tbody tr:last-child > td { border-bottom: 0 !important; }
.gsvtabelle.rounded.frame-left table.gsvtabelle-table tr > :first-child { border-left: 0 !important; }
