.german-soccer {
  --gs-accent: #1769aa;
  --gs-accent-dark: #0f4c81;
  --gs-surface: #fff;
  --gs-highlight: #eaf4fc;
  --gs-border: #dce3ea;
  --gs-muted: #667585;
  --gs-text: #17212b;
  width: 100%;
  overflow: hidden;
  color: var(--gs-text);
  background: var(--gs-surface);
  border: 1px solid var(--gs-border);
  border-radius: 14px;
  box-shadow: 0 8px 28px rgba(24, 42, 59, .08);
  font-family: inherit;
}
.gs-header { display:flex; align-items:center; gap:18px; padding:22px 24px; color:#fff; background:linear-gradient(125deg,var(--gs-accent-dark),var(--gs-accent)); }
.gs-club-logo,.gs-logo-placeholder { width:76px; height:76px; flex:0 0 76px; object-fit:contain; box-sizing:border-box; padding:7px; border-radius:12px; background:rgba(255,255,255,.96); }
.gs-logo-placeholder { display:grid; place-items:center; font-size:34px; }
.gs-heading { min-width:0; }
.gs-heading h2 { margin:2px 0 3px!important; padding:0; color:#fff; font-size:clamp(22px,4vw,32px); line-height:1.15; }
.gs-heading p,.gs-kicker { margin:0; color:rgba(255,255,255,.86); font-size:14px; }
.gs-kicker { font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.gs-tabs { display:flex; gap:4px; padding:8px; overflow-x:auto; border-bottom:1px solid var(--gs-border); background:#f7f9fb; }
.gs-tab { appearance:none; border:0; border-radius:8px; padding:10px 16px; white-space:nowrap; color:#3f4b57; background:transparent; font:600 14px/1.2 inherit; cursor:pointer; }
.gs-tab:hover { background:#eaf0f5; }
.gs-tab.is-active { color:#fff; background:var(--gs-accent); box-shadow:0 3px 10px rgba(0,0,0,.12); }
.gs-panel { display:none; padding:18px; }
.gs-panel.is-active,.german-soccer > .gs-panel:only-of-type { display:block; }
.gs-games { display:grid; gap:10px; }
.gs-game { position:relative; display:grid; grid-template-columns:minmax(145px,.7fr) minmax(0,2fr) auto; align-items:center; gap:16px; min-height:82px; padding:13px 16px; border:1px solid var(--gs-border); border-left:4px solid #aab5bf; border-radius:10px; background:#fff; }
.gs-game.is-home { border-left-color:var(--gs-accent); }
.gs-game-meta { display:flex; flex-direction:column; gap:4px; font-size:13px; color:var(--gs-muted); }
.gs-game-meta time { display:flex; flex-direction:column; }
.gs-game-meta strong { color:var(--gs-text); font-size:14px; }
.gs-competition { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gs-matchup { display:grid; grid-template-columns:minmax(0,1fr) 66px minmax(0,1fr); align-items:center; gap:10px; }
.gs-team { display:flex; align-items:center; gap:9px; min-width:0; font-weight:600; }
.gs-team > span:last-child { overflow:hidden; text-overflow:ellipsis; }
.gs-team-away { flex-direction:row-reverse; text-align:right; }
.gs-team-mark { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border-radius:50%; color:#536272; background:#eef2f5; font-size:11px; font-weight:800; }
.gs-team.is-own .gs-team-mark { color:#fff; background:var(--gs-accent); }
.gs-score { padding:7px 5px; text-align:center; border-radius:7px; color:#fff; background:#25313d; font-weight:800; font-variant-numeric:tabular-nums; }
.gs-game-link { color:var(--gs-accent-dark); font-size:13px; font-weight:700; text-decoration:none!important; }
.gs-game-link:hover { text-decoration:underline!important; }
.gs-empty { padding:32px; text-align:center; color:var(--gs-muted); background:#f7f9fb; border-radius:10px; }
.gs-table-wrap { width:100%; overflow-x:auto; border:1px solid var(--gs-border); border-radius:10px; }
.gs-table { width:100%; min-width:600px; margin:0!important; border-collapse:collapse; font-size:14px; }
.gs-table th,.gs-table td { height:42px; box-sizing:border-box; padding:7px 10px; text-align:center; border:0; border-bottom:1px solid var(--gs-border); }
.gs-table thead th { color:#fff; background:var(--gs-accent-dark); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.035em; }
.gs-table tbody tr:last-child td { border-bottom:0; }
.gs-table tbody tr:nth-child(even) { background:#f7f9fb; }
.gs-table tbody tr.is-own { background:var(--gs-highlight); box-shadow:inset 4px 0 0 var(--gs-accent); font-weight:700; }
.gs-table-team { min-width:220px; text-align:left!important; }
.gs-table-team a { color:inherit; text-decoration:none!important; }
.gs-table-team a:hover { color:var(--gs-accent-dark); text-decoration:underline!important; }
.gs-rank,.gs-points { font-weight:800; font-variant-numeric:tabular-nums; }
.gs-footer { display:flex; justify-content:space-between; gap:12px; padding:11px 18px; color:var(--gs-muted); background:#f7f9fb; border-top:1px solid var(--gs-border); font-size:12px; }
.gs-footer a { color:var(--gs-accent-dark); text-decoration:none!important; }
.german-soccer-message { padding:14px 16px; border-left:4px solid #dba617; background:#fff8e5; }
@media (max-width:760px) {
  .gs-header { padding:17px; }
  .gs-club-logo,.gs-logo-placeholder { width:60px; height:60px; flex-basis:60px; }
  .gs-panel { padding:10px; }
  .gs-game { grid-template-columns:1fr auto; gap:10px; padding:13px; }
  .gs-game-meta { grid-column:1 / -1; flex-direction:row; justify-content:space-between; align-items:center; padding-bottom:8px; border-bottom:1px solid var(--gs-border); }
  .gs-game-meta time { flex-direction:row; gap:7px; }
  .gs-matchup { grid-column:1 / -1; grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr); }
  .gs-game-link { grid-column:1 / -1; justify-self:end; }
  .gs-team { flex-direction:column; align-items:flex-start; font-size:13px; line-height:1.25; }
  .gs-team-away { align-items:flex-end; text-align:right; }
  .gs-team-mark { width:30px; height:30px; flex-basis:30px; }
  .gs-wide { display:none; }
  .gs-table { min-width:430px; font-size:13px; }
  .gs-table-team { min-width:180px; }
  .gs-footer { flex-direction:column; }
}

