/* Spielbericht: responsive und ohne horizontale Pflicht-Scrollbereiche */
.sb-detail-page{padding-top:36px;padding-bottom:76px;max-width:1020px}
.sb-detail-page h1{font-size:clamp(28px,5vw,46px);color:#193c2a;margin:16px 0 8px}
.sb-detail-context{color:#687c70;font-size:14px;margin:6px 0 10px;line-height:1.5}
.sb-score-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,.38fr) minmax(0,1fr);gap:12px;margin-top:28px;align-items:stretch}
.sb-score-card{border:1px solid #dce8d9;background:#fff;border-radius:18px;padding:21px;display:flex;flex-direction:column;gap:8px;min-width:0}
.sb-score-card small{color:#708574;font-size:12px}.sb-score-card strong{color:#21422e;font-size:clamp(14px,2.6vw,22px);overflow-wrap:anywhere}
.sb-score-card>span{font-size:clamp(28px,5.7vw,60px);font-weight:900;color:#173f2c;line-height:1.2;font-variant-numeric:tabular-nums}
.sb-difference{text-align:center;background:#eaf3e2;color:#315c30;border-radius:14px;margin:0;padding:10px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0}
.sb-difference small{font-size:clamp(10px,1.7vw,12px);overflow-wrap:anywhere}.sb-difference strong{font-size:clamp(18px,3vw,28px);font-variant-numeric:tabular-nums;white-space:nowrap}
.sb-player-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.sb-players-group{min-width:0}.sb-players-group h2{font-size:19px;line-height:1.4;overflow-wrap:anywhere;color:#203e2b}
.sb-players-table{table-layout:fixed;width:100%;border-collapse:collapse;background:#fff;border:1px solid #e1e8dc;border-radius:12px;overflow:hidden;font-size:13px}
.sb-players-table th,.sb-players-table td{padding:10px 8px;border-bottom:1px solid #e8eee5;text-align:right;font-variant-numeric:tabular-nums}
.sb-players-table th:first-child{width:47%;text-align:left;overflow-wrap:anywhere;font-weight:650}.sb-players-table thead{background:#e9f0e4;color:#4e6e4a}
.sb-players-table tfoot{background:#eff6eb;font-weight:850}.sb-zero-errors{color:#477a35;margin-left:4px;font-size:11px}
.sb-detail-key,.sb-detail-note{font-size:13px;color:#6e816e;margin-top:18px}.sb-detail-note{background:#fff;padding:18px;border-radius:12px}.sb-detail-missing{background:#f0f5eb;border:1px dashed #b8cab0;border-radius:16px;padding:26px;margin:28px 0}.sb-detail-missing h2{font-size:18px}
.cup-match .sb-match-link{display:block;padding:11px 15px;border-top:1px solid #e6eee1;color:#285e37;font-weight:750;font-size:12px;text-decoration:none}.cup-match .sb-match-link:hover{text-decoration:underline}
.sb-list-link{font-weight:750;color:#245a3c;text-decoration:underline}
/* Heim und Gast bleiben auch auf Smartphones direkt gegenübergestellt. */
.sb-players-group h2{display:flex;flex-direction:column;gap:2px;min-height:52px}
.sb-side-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:#56745d}
.sb-side-club{font-size:clamp(14px,1.8vw,19px);font-weight:750;line-height:1.3}
@media(max-width:750px){
 .sb-player-tables{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .sb-detail-page{padding-top:20px}
 .sb-score-grid{gap:8px}.sb-score-card{padding:13px}
 .sb-players-group h2{min-height:58px;margin-bottom:10px}
 .sb-players-table th,.sb-players-table td{padding:8px 4px}
}
@media(max-width:630px){
 .sb-player-tables{gap:8px}
 .sb-players-group h2{min-height:64px}
 .sb-side-club{font-size:13px}
 .sb-players-table{display:block;background:transparent;border:0;font-size:12px}
 .sb-players-table thead{display:none}
 .sb-players-table tbody,.sb-players-table tfoot{display:block}
 .sb-players-table tbody tr,.sb-players-table tfoot tr{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  background:#fff;border:1px solid #e1e8dc;border-radius:10px;
  overflow:hidden;margin-bottom:8px
 }
 .sb-players-table th:first-child{
  box-sizing:border-box;grid-column:1/-1;width:auto;text-align:left;
  padding:7px 8px;font-size:12px;line-height:1.25;overflow-wrap:anywhere;
  border-bottom:1px solid #e8eee5;background:#f6f9f3
 }
 .sb-players-table td{
  padding:6px 1px 7px;text-align:center;white-space:normal;
  font-size:12px;line-height:1.2;border-bottom:0;min-width:0
 }
 .sb-players-table td::before{
  content:attr(data-stat);display:block;color:#758576;
  font-size:10px;font-weight:700;margin-bottom:3px
 }
 .sb-players-table tfoot tr{background:#e7f0e3;font-weight:800}
 .sb-players-table tfoot th:first-child{background:#dbe9d5}
 .sb-zero-errors{display:block;font-size:11px;margin-left:0;margin-top:2px}
}


/* Ganze Pokalspielkarte antippbar, Tastaturfokus sichtbar */
.cup-match{position:relative}.cup-match .sb-match-link::after{content:"";position:absolute;inset:0;z-index:1}.cup-match:focus-within{outline:3px solid #638b4e;outline-offset:2px}.cup-match:hover{border-color:#6d9861;box-shadow:0 5px 17px #16391826}

/* Gastspalte rechtsbündig; Holzdifferenz auf Höhe beider Mannschaftsergebnisse. */
.sb-score-away{text-align:right;align-items:flex-end}
.sb-players-away h2{text-align:right;align-items:flex-end}
.sb-players-away .sb-players-table th:first-child{text-align:left}
@media(max-width:750px){
 .sb-score-grid{grid-template-columns:minmax(0,1fr) minmax(64px,.4fr) minmax(0,1fr);gap:6px}
 .sb-score-card{gap:5px}
 .sb-score-card strong{font-size:clamp(12px,2.7vw,17px)}
 .sb-difference{padding:8px 2px}
}
@media(max-width:420px){
 .sb-score-card{padding:9px 7px}
 .sb-score-card>span{font-size:clamp(23px,7vw,33px)}
 .sb-difference strong{font-size:clamp(17px,5vw,22px)}
 .sb-difference small{font-size:10px}
}

/* 2.1.7: Heim- und Gast-Gesamtstatistik auch im oberen Ergebnisblock */
.sb-score-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0 30px}
.sb-score-stats-side{min-width:0;border:1px solid #e0e9db;border-radius:12px;padding:13px;background:#f7faf4}
.sb-score-stats-side>strong{display:block;font-size:13px;margin-bottom:9px;color:#315239}
.sb-score-stats-away>strong{text-align:right}
.sb-score-stats-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.sb-score-stats-values>div{min-width:0;text-align:center;background:white;border-radius:7px;padding:7px 2px;border:1px solid #e0e9dc}
.sb-score-stats-values small{display:block;color:#718575;font-size:10px;word-break:break-word}
.sb-score-stats-values b{display:block;font-size:19px;font-variant-numeric:tabular-nums;color:#29482f}
@media(max-width:620px){.sb-score-stats{gap:6px}.sb-score-stats-side{padding:6px}.sb-score-stats-side>strong{font-size:10px}.sb-score-stats-values{gap:2px}.sb-score-stats-values>div{padding:5px 1px}.sb-score-stats-values small{font-size:8px}.sb-score-stats-values b{font-size:13px}}

/* 2.1.13 – separater Eintrag für Auswechslungen und Spielerplatzsumme */
.sb-substitution-note{display:block;margin-top:3px;color:#768677;font-size:10px;font-weight:500}
.sb-substitution-sum{background:#f3f7ef;font-weight:750}

/* 2.1.13 – öffentliche Detailansicht: keine redundanten Kurzlabels, Auswechslung eine Zeile */
.sb-score-stats-side{padding-top:10px}
.sb-substitution-combined th:first-child .sb-substitution-starter{font-weight:700}
.sb-substitution-combined th:first-child .sb-substitution-replacement{font-weight:700}
.sb-substitution-combined th:first-child .sb-substitution-separator{font-weight:400;color:#617565}
