/* Shared identity for the tracker and Team Dashboard. */
.ct-brand{color:#071a2b;text-decoration:none;display:flex;gap:10px;align-items:center;min-width:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.ct-brand>div{min-width:0;overflow-wrap:anywhere;}
.ct-brand .ct-mark{background:#071a2b;color:#bbf23d;width:36px;height:36px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:24px;font-weight:950;font-style:italic;transform:rotate(-8deg);}
.ct-brand .ct-wordmark{font-size:16px;line-height:1.3;font-weight:900;letter-spacing:-.045em;}
.ct-brand .ct-wordmark span{color:#456a00;margin-left:3px;}
.ct-brand .ct-tagline{font-size:13px;line-height:1.4;margin-top:3px;color:#4d6172;}
.ct-brand:focus-visible{outline:3px solid #456a00;outline-offset:4px;border-radius:4px;}
@container ct (max-width:540px){.ct-brand .ct-wordmark{font-size:15px;}}

/* Participation highlights shared by the tracker and Team Dashboard. */
#champion-full-design .ct-needs-number,.shell .ct-needs-number{display:inline-flex;align-items:center;justify-content:center;min-width:2.3em;min-height:2em;padding:.15em .5em;border-radius:8px;background:#c5f35c;color:#071a2b;font-weight:850;box-shadow:inset 0 0 0 1px #98bd40}
#champion-full-design .ct-highlight-key,.shell .ct-highlight-key{font-size:14px;line-height:1.5;margin:16px 0;color:#465760}
#champion-full-design .ct-highlight-key>span,.shell .ct-highlight-key>span{display:inline-block;vertical-align:middle;width:15px;height:15px;border-radius:4px;background:#c5f35c;border:1px solid #98bd40;margin-right:7px}

/* Play confirmations float above the page without shifting game controls. */
#champion-full-design .ct-pass-rule{margin:0 0 14px;padding:12px 14px;background:#eff7dc;border-left:4px solid #638512;border-radius:7px;color:#233613;font-size:14px;line-height:1.5}
#champion-full-design .ct-pass-rule strong{display:block}
#champion-full-design .ct-record-note{display:block;margin-top:4px;font-size:13px;font-weight:600;line-height:1.35}
#champion-full-design .ct-offense-record .ct-record{padding-left:10px;padding-right:10px;white-space:normal}
#champion-full-design .ct-record-feedback{position:fixed;z-index:100;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;align-items:center;gap:12px;width:max-content;max-width:min(420px,calc(100vw - 32px));padding:14px 18px;border:2px solid #bbf23d;border-radius:14px;background:#071a2b;color:#fff;box-shadow:0 8px 28px #071a2b40;pointer-events:none;animation:ct-record-appear .16s ease-out}
#champion-full-design .ct-record-feedback[hidden]{display:none}
#champion-full-design .ct-record-check{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#bbf23d;color:#071a2b;font-size:23px;font-weight:900}
#champion-full-design .ct-record-feedback strong{display:block;font-size:19px;line-height:1.3}
#champion-full-design .ct-record-feedback [data-record-detail]{display:block;margin-top:3px;font-size:14px;line-height:1.4;overflow-wrap:anywhere}
@keyframes ct-record-appear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){#champion-full-design .ct-record-feedback{animation:none}}
/* Team identity stays visible without crowding the recording controls. */
#champion-full-design .ct-live-team { flex-basis:100%; margin:0; font-size:18px; line-height:1.3; font-weight:800; overflow-wrap:anywhere; }
#champion-full-design .ct-team-menu-hint { display:block; font-size:11px; line-height:1.4; font-weight:400; opacity:.85; margin-top:4px; }
#champion-full-design #ct-teams-dialog { width:min(460px,calc(100vw - 24px)); max-height:90dvh; overflow:auto; }
#champion-full-design .ct-teams-list { display:grid; gap:10px; margin-top:18px; }
#champion-full-design .ct-team-option { display:grid; gap:5px; width:100%; text-align:left; padding:14px; border:1px solid #d6dfd0; border-radius:12px; background:white; color:var(--ct-ink); font:inherit; cursor:pointer; overflow-wrap:anywhere; }
#champion-full-design .ct-team-option strong { font-size:16px; }
#champion-full-design .ct-team-option span { font-size:12px; }
#champion-full-design .ct-team-option[aria-current] { border:2px solid var(--ct-ink); background:#f3f6ed; opacity:1; cursor:default; }
#champion-full-design #ct-team-fields { border:0; padding:0; margin:0; min-width:0; }
#champion-full-design #ct-new-team-name { width:100%; }

#champion-full-design .ct-flag-section { margin-top:16px; border:1px solid var(--ct-line); border-radius:10px; background:#f7f9f3; }
#champion-full-design .ct-flag-section summary { padding:14px; font-size:17px; font-weight:750; cursor:pointer; }
#champion-full-design .ct-flag-section summary span, #champion-full-design .ct-flag-title span { display:inline-block; margin-left:6px; font-size:12px; font-weight:500; color:#526272; }
#champion-full-design .ct-flag-section>div { padding:0 14px 14px; }
#champion-full-design .ct-flag-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
#champion-full-design .ct-flag-choice { min-height:48px; white-space:normal; overflow-wrap:anywhere; text-align:left; font-size:16px; }
#champion-full-design .ct-flag-choice[aria-pressed="true"] { background:var(--ct-ink); color:white; border-color:var(--ct-ink); box-shadow:inset 4px 0 #bbf23d; }
#champion-full-design .ct-flag-title { font-size:17px; margin:16px 0 8px; }

/* Compact sortable report headings, shared by coach and family views. */
#champion-full-design .ct-stat-sort,.ct-stat-sort{display:inline-flex;align-items:center;justify-content:inherit;gap:2px;max-width:100%;min-height:36px;margin:0;padding:4px 0;border:0;border-radius:4px;background:transparent;color:inherit;font:inherit;font-weight:750;line-height:1.25;text-align:inherit;cursor:pointer;white-space:normal;overflow-wrap:normal;}
#champion-full-design .ct-stat-sort span,.ct-stat-sort span{flex:none;font-size:10px;}
#champion-full-design th[aria-sort]:not([aria-sort="none"]) .ct-stat-sort,th[aria-sort]:not([aria-sort="none"]) .ct-stat-sort{color:#071a2b;background:#eaf6cf;}
#champion-full-design .ct-stat-sort:hover,.ct-stat-sort:hover{background:#edf3e4;}
#champion-full-design .ct-stat-sort:focus-visible,.ct-stat-sort:focus-visible{outline:3px solid #456a00;outline-offset:2px;}

/* Roster: names first, with editing controls available when needed. */
#champion-full-design #ct-full-roster .ct-panel { overflow:visible; }
#champion-full-design #ct-full-roster .ct-band { border-radius:13px 13px 0 0; }
#champion-full-design .ct-roster-overview { display:flex; align-items:center; gap:18px; padding:4px 0 18px; border-bottom:1px solid #e2e8ed; flex-wrap:wrap; }
#champion-full-design .ct-roster-count { display:flex; align-items:baseline; gap:9px; color:var(--ct-ink); }
#champion-full-design .ct-roster-count strong { font-size:2.25rem; font-weight:850; line-height:1; font-variant-numeric:tabular-nums; letter-spacing:-.04em; }
#champion-full-design .ct-roster-count span { font-size:1rem; font-weight:650; }
#champion-full-design .ct-roster-context { margin-left:auto; text-align:right; min-width:0; overflow-wrap:anywhere; }
#champion-full-design .ct-roster-context>p:first-child { margin:0 0 3px; font-size:.875rem; font-weight:700; }
#champion-full-design #ct-full-roster .ct-add-player { gap:10px; margin:20px 0 24px; }
#champion-full-design #ct-full-roster .ct-add-player label { min-width:120px; }
#champion-full-design #ct-full-roster .ct-add-player input { min-height:46px; border-color:#cbd5de; }
#champion-full-design #ct-full-roster .ct-add-player button { min-height:46px; font-size:.875rem; }
#champion-full-design .ct-roster-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
#champion-full-design .ct-roster-toolbar h3 { font-size:1rem; }
#champion-full-design .ct-roster-toolbar .ct-button { display:flex; align-items:center; justify-content:center; gap:7px; min-height:44px; font-size:.875rem; border-color:#cbd5de; }
#champion-full-design .ct-roster-toolbar .ct-primary { border-color:var(--ct-ink); }
#champion-full-design p.ct-reorder-help { margin:-2px 0 12px; }
#champion-full-design .ct-player-list { margin:0; padding:0; list-style:none; border:1px solid #dce3ea; border-radius:12px; background:white; }
#champion-full-design .ct-player-row { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:68px; padding:10px 12px; border-bottom:1px solid #e6ebf0; }
#champion-full-design .ct-player-row:last-child { border-bottom:0; }
#champion-full-design .ct-player-order { display:grid; place-items:center; width:36px; min-height:36px; padding:4px; border-radius:10px; background:#edf2f6; color:#40566d; font-size:.875rem; line-height:1.25; font-weight:750; font-variant-numeric:tabular-nums; }
#champion-full-design .ct-player-name { font-size:1.0625rem; line-height:1.4; font-weight:750; overflow-wrap:anywhere; }
#champion-full-design details.ct-player-menu { position:relative; border:0; margin:0; padding:0; }
#champion-full-design .ct-player-menu>summary { display:grid; place-items:center; width:44px; height:44px; padding:0; margin:0; border:1px solid transparent; border-radius:9px; color:#52687b; background:transparent; cursor:pointer; list-style:none; }
#champion-full-design .ct-player-menu>summary::-webkit-details-marker { display:none; }
#champion-full-design .ct-player-menu>summary:hover,#champion-full-design .ct-player-menu[open]>summary { background:#edf2f6; color:var(--ct-ink); }
#champion-full-design details.ct-player-menu>.ct-player-menu-items { position:absolute; right:0; top:calc(100% + 4px); z-index:5; display:grid; min-width:170px; max-width:calc(100vw - 70px); margin:0; padding:6px; background:white; border:1px solid #dce3ea; border-radius:12px; box-shadow:0 8px 24px #071a2b26; }
#champion-full-design .ct-player-menu-items .ct-button { min-height:44px; padding:10px 12px; border:0; border-radius:7px; text-align:left; font-size:.875rem; white-space:normal; }
#champion-full-design .ct-player-menu-items .ct-button:hover { background:#edf2f6; }
#champion-full-design .ct-player-menu-items .ct-danger:hover { background:#fff0ee; }
#champion-full-design .ct-roster-handle { display:grid; place-items:center; width:48px; min-height:48px; padding:0; border-color:#dce3ea; border-radius:9px; background:#f6f8fa; color:#40566d; cursor:grab; touch-action:none; user-select:none; -webkit-user-select:none; }
#champion-full-design .ct-roster-handle:active { cursor:grabbing; }
#champion-full-design .ct-player-list { position:relative; }
#champion-full-design .ct-roster-placeholder { background:#eff9da; outline:2px dashed #7b9b3b; outline-offset:-3px; }
#champion-full-design .ct-roster-placeholder>* { opacity:.15; }
#champion-full-design .ct-roster-ghost { position:absolute; left:0; right:0; z-index:8; margin:0; border:1px solid #bbf23d; border-radius:10px; background:#fff; box-shadow:0 8px 22px #071a2b30; pointer-events:none; }
#champion-full-design .ct-roster-lifted { background:#eff9da; outline:2px solid #668724; outline-offset:-2px; }
#champion-full-design .ct-roster-dragging { user-select:none; -webkit-user-select:none; }
#champion-full-design .ct-roster-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
#champion-full-design :is(.ct-player-menu>summary,.ct-player-row,.ct-roster-handle):focus-visible { outline:3px solid #2870ae; outline-offset:2px; }
#champion-full-design .ct-removed-players { margin-top:24px; border-color:#e2e8ed; padding-top:16px; }
#champion-full-design .ct-removed-players summary { color:#52687b; font-size:.875rem; }
#champion-full-design .ct-removed-players summary span { margin-left:5px; padding:2px 7px; background:#edf2f6; border-radius:5px; font-variant-numeric:tabular-nums; }
#champion-full-design p.ct-roster-history-note { margin-top:12px; }
#champion-full-design .ct-roster-empty { padding:24px 16px; border:1px dashed #cbd5de; border-radius:12px; text-align:center; }
#champion-full-design .ct-roster-empty h3 { margin-bottom:6px; }
@container ct (max-width:400px) {
  #champion-full-design .ct-player-row { gap:9px; padding:10px; }
  #champion-full-design .ct-roster-overview { gap:12px; }
  #champion-full-design .ct-roster-context { flex-basis:100%; margin:0; text-align:left; }
}

#champion-full-design #ct-feedback-dialog{max-height:92dvh;overflow-y:auto;width:min(520px,calc(100vw - 32px));box-sizing:border-box}#champion-full-design #ct-feedback-dialog .ct-band{justify-content:space-between;gap:12px}#champion-full-design #ct-feedback-text{width:100%;box-sizing:border-box;min-height:150px;padding:12px;border:1px solid #9ca9ad;border-radius:10px;font:inherit;resize:vertical}#champion-full-design #ct-email-details{margin:20px 0}#champion-full-design #ct-email-details summary{cursor:pointer;font-weight:700;padding:10px 0}#champion-full-design #ct-feedback-from{overflow-wrap:anywhere}
