/* Thumb War Hockey - Plan 03 public extras: volunteers, waiver signing, team page, leaders. Loaded via $extraHead. */
.shift-card { background: #fff; border-radius: var(--radius, 14px); box-shadow: var(--shadow, 0 10px 30px rgba(20,26,43,.12)); padding: 1.1rem 1.25rem; display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; gap: 1rem; align-items: center; border-left: 6px solid var(--navy, #1f2d4d); }
.shift-card.is-full { border-left-color: #9aa1b1; opacity: .85; }
.shift-card .shift-time { font-family: var(--font-score, 'Barlow Condensed', sans-serif); font-weight: 800; font-size: 1.6rem; line-height: 1; color: var(--navy-deep, #141a2b); text-align: center; }
.shift-card .shift-time small { display: block; font-family: var(--font-head, 'Montserrat', sans-serif); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted, #5d6474); margin-top: .25rem; }
.shift-card h3 { font-size: 1.05rem; margin: 0 0 .2rem; }
.shift-card .shift-meta { color: var(--muted, #5d6474); font-size: .85rem; }
.shift-card .shift-meta i { color: var(--gold, #c9a95c); width: 1.1rem; }
.shift-card .shift-notes { font-size: .85rem; margin-top: .35rem; }
.shift-card .shift-cta { display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; }
.shift-card .spots { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #2e9e5b; white-space: nowrap; }
.shift-card.is-full .spots { color: #9aa1b1; }
.shift-card .btn { min-height: 44px; white-space: nowrap; }
.role-pill { display: inline-block; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 800; border-radius: 999px; padding: .2rem .6rem; background: var(--cream, #f5f1e8); color: var(--navy, #1f2d4d); margin-bottom: .3rem; }
@media (max-width: 575.98px) { .shift-card { grid-template-columns: 64px minmax(0, 1fr); } .shift-card .shift-cta { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; } .shift-card .shift-time { font-size: 1.3rem; } }
.waiver-text { background: #fff; border-radius: var(--radius, 14px); box-shadow: var(--shadow, 0 10px 30px rgba(20,26,43,.12)); padding: 1.5rem; max-height: 46vh; overflow-y: auto; line-height: 1.65; }
.waiver-text h3 { font-size: 1.1rem; margin-top: 0; }
.sig-pad { position: relative; border: 2px dashed var(--navy, #1f2d4d); border-radius: 12px; background: #fff; touch-action: none; }
.sig-pad canvas { display: block; width: 100%; height: 190px; border-radius: 10px; cursor: crosshair; }
.sig-pad .sig-line { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 2.6rem; border-bottom: 1px solid #c8cbd3; pointer-events: none; }
.sig-pad .sig-hint { position: absolute; left: 0; right: 0; bottom: .6rem; text-align: center; color: #9aa1b1; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; pointer-events: none; }
.sig-pad.has-ink .sig-hint { display: none; }
.sig-tools { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-top: .5rem; }
.sig-tools .btn { min-height: 44px; }
.waiver-done { text-align: center; padding: 2rem 1rem; }
.waiver-done .icon { width: 72px; height: 72px; border-radius: 50%; background: #2e9e5b; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 2rem; margin-bottom: 1rem; }
.waiver-done img.sig { max-width: 320px; width: 100%; border: 1px solid #e3e6ec; border-radius: 10px; background: #fff; margin: 1rem auto; display: block; }
.roster-row .waiver-line { grid-column: 1 / -1; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; font-size: .8rem; margin-top: -.1rem; padding-left: .25rem; }
.roster-row .waiver-line .btn { min-height: 40px; font-size: .78rem; padding: .35rem .7rem; }
.waiver-badge { display: inline-flex; align-items: center; gap: .3rem; border-radius: 999px; padding: .2rem .65rem; font-weight: 700; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.waiver-badge.signed { background: #e4f5ea; color: #1e7a3c; }
.waiver-badge.unsigned { background: #fdecee; color: #8e1a28; }
.waiver-badge.pending { background: #fff4d6; color: #7a5a00; }
.table-stats { font-size: .92rem; margin: 0; }
.table-stats thead th { background: var(--navy-deep, #141a2b); color: #fff; font-family: var(--font-head, 'Montserrat', sans-serif); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; border: 0; padding: .65rem .5rem; white-space: nowrap; }
.table-stats td { padding: .6rem .5rem; vertical-align: middle; border-color: #eee; }
.table-stats td.num, .table-stats th.num { text-align: center; font-family: var(--font-score, 'Barlow Condensed', sans-serif); font-size: 1.05rem; font-weight: 700; }
.table-stats td.pts { color: var(--red, #b22234); font-size: 1.2rem; }
.table-stats .rank { font-family: var(--font-score, 'Barlow Condensed', sans-serif); font-weight: 800; color: var(--muted, #5d6474); width: 2rem; text-align: center; }
.table-stats .player { font-weight: 700; white-space: nowrap; }
.table-stats .player small { display: block; font-weight: 500; color: var(--muted, #5d6474); font-size: .72rem; }
.table-stats .player a { color: inherit; text-decoration: none; }
.table-stats .player a:hover { color: var(--red, #b22234); }
.jersey { display: inline-flex; align-items: center; justify-content: center; min-width: 2.2rem; height: 2.2rem; border-radius: 8px; background: var(--navy-deep, #141a2b); color: #fff; font-family: var(--font-score, 'Barlow Condensed', sans-serif); font-weight: 800; font-size: 1.1rem; padding: 0 .4rem; }
.table-standings .team-cell a { color: inherit; text-decoration: none; }
.table-standings .team-cell a:hover { color: var(--red, #b22234); text-decoration: underline; }
.team-hero-meta { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 1rem; }
.team-hero-meta .stat { text-align: center; }
.team-hero-meta .stat b { display: block; font-family: var(--font-score, 'Barlow Condensed', sans-serif); font-size: 2.2rem; line-height: 1; color: var(--gold, #c9a95c); }
.team-hero-meta .stat small { font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.7); font-weight: 700; }
