/* Coaching Lab, soccer workbench (release 126). Builds on coaching_scenario.css; only the pitch and the job progress are new. */
.csc-soccer .csc-pitch { aspect-ratio: 126 / 86; }
.csc-turf-edge { fill: #2f6f3f; }
.csc-turf { fill: #3c8a4d; }
.csc-stripes rect { fill: #368046; }
.csc-lines rect, .csc-lines path, .csc-lines circle { stroke: rgba(255,255,255,.85); stroke-width: .35; }
.csc-lines .csc-goal { fill: rgba(255,255,255,.25); }
.csc-spots circle { fill: rgba(255,255,255,.85); }
.csc-soccer .csc-dir { font-size: 1.9px; fill: rgba(255,255,255,.85); }
.csc-soccer .csc-body { stroke-width: .45; }
/* release 128: club shirts. coaching_soccer.js sets --c-attack / --c-defend (shirt), --k-<side>-edge, -text, -gk, -gk-text from the
   lineup's kits; without them the hockey colours below stay. */
.csc-soccer .csc-dot.csc-attack .csc-body { fill: var(--c-attack); stroke: var(--k-attack-edge, #fff); }
.csc-soccer .csc-dot.csc-defend .csc-body { fill: var(--c-defend); stroke: var(--k-defend-edge, #fff); }
.csc-soccer .csc-dot.csc-attack .csc-slot { fill: var(--k-attack-text, #fff); }
.csc-soccer .csc-dot.csc-defend .csc-slot { fill: var(--k-defend-text, #fff); }
.csc-soccer .csc-dot.csc-attack.is-goalie .csc-body { fill: var(--k-attack-gk, var(--c-attack)); stroke-dasharray: none; }
.csc-soccer .csc-dot.csc-defend.is-goalie .csc-body { fill: var(--k-defend-gk, var(--c-defend)); stroke-dasharray: none; }
.csc-soccer .csc-dot.csc-attack.is-goalie .csc-slot { fill: var(--k-attack-gk-text, #fff); }
.csc-soccer .csc-dot.csc-defend.is-goalie .csc-slot { fill: var(--k-defend-gk-text, #fff); }
.csc-soccer .csc-instr-line, .csc-soccer .csc-target { filter: drop-shadow(0 0 .25px rgba(0,0,0,.55)); }
.csc-replay-tag { font-size: 2.3px; font-weight: 800; letter-spacing: .08px; fill: #fff; paint-order: stroke; stroke: rgba(0,0,0,.45); stroke-width: .5px; pointer-events: none; }
.csc-replay-note { flex-basis: 100%; margin: 4px 0 0; }
.csc-soccer .csc-dot:focus-visible .csc-body, .csc-soccer .csc-dot.is-sel .csc-body { stroke: #ffe28a; stroke-width: .7; }
.csc-soccer .csc-slot { font-size: 1.45px; }
.csc-soccer .csc-name { font-size: 1.8px; fill: #fff; stroke: rgba(0,0,0,.55); stroke-width: .45px; }
.csc-soccer .csc-ring { stroke: #ffe28a; stroke-width: .4; stroke-dasharray: .9 .6; }
.csc-soccer .csc-ball { fill: #fff; stroke: #1c1c1c; stroke-width: .3; }
.csc-soccer .csc-ball.is-shot { fill: #ffd34d; }
.csc-soccer .csc-trail { stroke: #fff; stroke-width: .35; opacity: .55; }
.csc-soccer .csc-instr-line { stroke-width: .35; stroke-dasharray: 1.1 .8; }
.csc-soccer .csc-target { stroke-width: .6; }
.csc-loading { margin: 6px 4px 10px; font-size: 14px; font-weight: 600; color: var(--c-muted); }
.csc-progress { margin: 10px 0 0; }
.csc-progress-bar { height: 8px; border-radius: 999px; background: var(--c-panel2); overflow: hidden; }
.csc-progress-bar span { display: block; height: 100%; width: 0; background: var(--c-accent); transition: width .4s ease; }
@media (prefers-reduced-motion: reduce) { .csc-progress-bar span { transition: none; } }
.csc-issues a { color: var(--c-accent); font-weight: 700; }
.csc-soccer .csc-r.is-used::after { content: 'on the pitch'; }
/* release 181 (audit): availability from the game pages' injury report, and the time a test takes */
.csc-avail { margin: 0 0 8px; padding: 8px 10px; border: 1px solid #fcd34d; border-radius: 8px; background: #fffbeb; color: #78350f; font-size: 12.5px; line-height: 1.45; }
.csc-avail b { font-weight: 600; }
.csc-avail-more { margin-top: 4px; }
.csc-avail-more summary { display: inline-flex; align-items: center; min-height: 32px; cursor: pointer; font-weight: 600; color: #92400e; }
.csc-avail-more ul { margin: 2px 0 0; padding-left: 18px; }
.csc-avail-more li { margin: 2px 0; }
.csc-r-avail { margin-left: 6px; font-size: 11px; font-weight: 600; color: #92400e; }
.csc-r-avail.is-out { color: #b91c1c; }
.csc-eta { margin-left: 10px; font-size: 12.5px; color: #63636b; }
