/* CHALLENGE planetgolf – live page (M5): large, calm, plain; mobile first, wider on desktop. */
.cpg-app.cpgl { max-width: 1100px; font-size: 19px; }
.cpgl h2 { font-size: 1.45em; margin: .3em 0 .2em; }
.cpgl h3 { font-size: 1.2em; margin: 1.3em 0 .5em; }
.cpgl h4 { font-size: 1.05em; margin: .8em 0 .3em; }
.cpgl a { color: #1e6b34; }
.cpgl-bar { display: flex; justify-content: flex-end; gap: .6em; margin: .2em 0 .6em; }
.cpgl-sound { min-height: 48px; padding: .4em 1em; border-radius: 999px; border: 2px solid #8c8f94; background: #fff; color: #1d2327; font-size: 1em; cursor: pointer; }
.cpgl-sound.is-on { border-color: #1e6b34; background: #eef7ee; color: #1e6b34; font-weight: 600; }
.cpgl-sound:focus-visible, .cpgl-tab:focus-visible { outline: 3px solid #f0b849; outline-offset: 2px; }
.cpgl-tabs { display: flex; flex-wrap: wrap; gap: .4em; overflow-x: visible; border-bottom: 2px solid #dcdcde; margin-bottom: .6em; }
.cpgl-tab { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .4em; min-height: 52px; padding: .3em 1em; font-size: 1.05em; font-weight: 600; text-decoration: none; color: #50575e !important; border-bottom: 4px solid transparent; margin-bottom: -2px; }
.cpgl-tab.is-active { color: #1e6b34 !important; border-bottom-color: #1e6b34; }
/* 0.7.1 phones / narrow screens: all club tabs at once as a wrapping grid of tiles – no sideways scrolling */
@media (max-width: 760px) {
	.cpgl-tabs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(10.5em, 45%), 1fr)); gap: .45em; overflow: visible; border-bottom: 0; }
	.cpgl-tab { justify-content: center; text-align: center; min-height: 48px; padding: .4em .6em; border: 1px solid #dcdcde; border-radius: 10px; margin: 0; background: #f6f7f7; font-size: .98em; overflow-wrap: break-word; hyphens: auto; line-height: 1.2; }
	.cpgl-tab.is-active { background: #1e6b34; border-color: #1e6b34; color: #fff !important; }
	.cpgl-tab.is-active .cpgl-tabdot { background: #fff; }
}
.cpgl-tabdot { width: .6em; height: .6em; border-radius: 50%; background: #1fa34a; animation: cpgl-pulse 1.6s ease-out infinite; }
.cpgl-tabdot[hidden] { display: none; }
.cpgl-club-name { margin-top: .2em; }
.cpgl-phase { font-size: 1.05em; color: #3c434a; margin: .1em 0 .6em; }
.cpgl-viewers { display: inline-block; margin: 0 0 .4em; padding: .15em .7em; border-radius: 999px; background: #f0f0f1; color: #3c434a; font-size: .9em; }
.cpgl-viewers[hidden] { display: none; }
.cpgl-sec { margin: .4em 0 1em; }
.cpgl-cards { display: grid; gap: .8em; grid-template-columns: 1fr; }
.cpgl-card { border: 1px solid #dcdcde; border-radius: 14px; padding: .6em .9em; background: #fff; }
.cpgl-card--live { border: 2px solid #1fa34a; }
.cpgl-card-head { display: flex; flex-wrap: wrap; align-items: center; gap: .3em .7em; margin-bottom: .3em; }
.cpgl-where { display: block; color: #646970; font-size: .85em; }
.cpgl-card-head .cpgl-where { display: inline; }
.cpgl-match { margin: .3em 0; padding: .3em .4em; border-radius: 8px; font-size: 1.05em; }
.cpgl-more { display: inline-block; margin-top: .3em; font-weight: 600; min-height: 44px; line-height: 44px; }
/* "live · Loch 7" with a small pulsing green dot */
.cpgl-live { display: inline-flex; align-items: center; gap: .35em; color: #13702f; font-weight: 700; font-size: .85em; white-space: nowrap; }
.cpgl-live i { width: .62em; height: .62em; border-radius: 50%; background: #1fa34a; box-shadow: 0 0 0 0 rgba(31,163,74,.6); animation: cpgl-pulse 1.6s ease-out infinite; }
@keyframes cpgl-pulse { 0% { box-shadow: 0 0 0 0 rgba(31,163,74,.55); } 70% { box-shadow: 0 0 0 .55em rgba(31,163,74,0); } 100% { box-shadow: 0 0 0 0 rgba(31,163,74,0); } }
@media (prefers-reduced-motion: reduce) { .cpgl-live i, .cpgl-tabdot { animation: none; } }
/* tables */
.cpgl-t { width: 100%; border-collapse: collapse; font-size: 1em; }
.cpgl-t th, .cpgl-t td { padding: .45em .35em; border-bottom: 1px solid #eee; text-align: center; vertical-align: middle; }
.cpgl-t th { font-size: .82em; color: #50575e; font-weight: 600; }
.cpgl-t .l { text-align: left; }
.cpgl-t a.cpgl-p { text-decoration: none; color: #1d2327; font-weight: 600; }
.cpgl-t a.cpgl-p:hover { text-decoration: underline; }
.cpgl-row--live, .cpgl .cpg-score tr.cpgl-row--live td { background: #edf8f0; }
.cpgl-row--out { color: #8c8f94; }
.cpgl-row--out a.cpgl-p { color: #8c8f94 !important; font-weight: 400; }
/* new score: row lights up briefly */
.cpgl-hl, .cpgl-hl td { animation: cpgl-hl 3.2s ease-out; }
@keyframes cpgl-hl { 0%, 25% { background: #ffe58a; } 100% { background: inherit; } }
.cpgl-groups { display: grid; gap: .3em 1.2em; grid-template-columns: 1fr; }
.cpgl-list { list-style: none; padding: 0; margin: 0; }
.cpgl-list li { border-bottom: 1px solid #eee; }
.cpgl-list a { display: block; padding: .55em .2em; text-decoration: none; color: #1d2327; min-height: 44px; }
.cpgl-list a:hover strong { text-decoration: underline; }
.cpgl-when { display: block; font-size: .85em; color: #50575e; }
.cpgl-back { margin-top: 1.4em; font-size: 1.05em; }
.cpgl-now { padding: .5em .7em; border-radius: 10px; font-size: 1.05em; }
.cpgl-now a { text-decoration: none; }
.cpgl-seasons { margin-top: 2em; border-top: 2px solid #dcdcde; padding-top: .4em; }
/* public scorecard: subtle grey dots for strokes received */
.cpgl .cpg-dots { color: #a7aaad; font-size: .62em; letter-spacing: 1px; margin-left: .1em; }
.cpgl .cpg-score { font-size: 1em; }
.cpgl .cpg-status .cpgl-live { font-size: .8em; }
@media (max-width: 599px) { .cpgl .cpg-score--flight .cpg-c-sv { display: none; } .cpgl .cpg-score--flight td:first-child { text-align: left; font-weight: 600; } }
.cpgl .cpg-score--holes th:first-child { text-align: left; white-space: nowrap; }
/* phones: the table shows place, player, total and today – the single rounds are on the player page */
@media (max-width: 599px) { .cpgl-board .r { display: none; } .cpgl-board .cpgl-live { display: flex; margin-top: .1em; } }
.cpgl-board td.l { min-width: 8em; }
.cpgl-today { white-space: nowrap; line-height: 1.15; }
.cpgl-today strong { display: block; font-size: 1.1em; }
.cpgl-today small { display: block; font-size: .75em; color: #50575e; }
.cpgl a:has(> .cpgl-live), .cpgl a .cpgl-live { text-decoration: none; }
@media (min-width: 760px) {
	.cpgl-cards { grid-template-columns: repeat(2, 1fr); }
	.cpgl-groups { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1100px) { .cpgl-groups { grid-template-columns: repeat(3, 1fr); } .cpg-app.cpgl { font-size: 18px; } }
/* 0.8.8: missed the cut – same faint style as a given-up player (.cpgl-row--out) */
.cpgl-board .cpgl-row--cut .cpgl-posn { color: #8c8f94; }
/* 0.8.16: decided / finished match badge instead of „live“; result column */
.cpg-done { display: inline-block; padding: 2px 9px; border-radius: 999px; background: #e7f3ea; color: #1f6f3a; font-size: .85em; font-weight: 700; }
.cpgl .cpg-score--mp .cpg-c-res { font-weight: 700; white-space: nowrap; }
.cpgl .cpg-r-a td:nth-child(3), .cpgl .cpg-r-b td:nth-child(4) { font-weight: 700; background: #eef7ee; }

/* 0.8.17.4: rounds Netto (Brutto) under the name on phones */
.cpgl-rounds-m { display: none; font-size: .78em; color: #50575e; margin-top: .1em; }
@media (max-width: 599px) { .cpgl-rounds-m { display: block; } }
