/* Competition discussion patterns are scoped here to the shared roster section. */
.roster-comments{--rc-paper:#fff9ee;--rc-ink:#173d2b;--rc-muted:#3c5f4b;--rc-rule:#a4b4a8;--rc-accent:#bce7c9;--rc-hover:#a6daba;margin-top:28px;scroll-margin-top:100px;padding:28px 32px;background:var(--rc-paper);color:var(--rc-ink);border-radius:4px;min-width:0}
.roster-comments[data-roster-sport="nba"]{--rc-paper:var(--bb-paper,#fff7ec);--rc-ink:var(--bb-ink,#2b190f);--rc-muted:var(--bb-muted-ink,#77513b);--rc-rule:var(--bb-rule-paper,#c6a081);--rc-accent:var(--bb-accent,#f47c28);--rc-hover:var(--bb-accent-hover,#ff9950)}
.roster-comments[data-roster-sport="nhl"]{--rc-paper:var(--hk-paper,#fffaf2);--rc-ink:var(--hk-ink,#102e37);--rc-muted:var(--hk-muted-ink,#3e646b);--rc-rule:var(--hk-rule-paper,#94b7b8);--rc-accent:var(--hk-accent,#65d8e5);--rc-hover:var(--hk-accent-hover,#a1eff5)}
.roster-comments h2{font:400 32px/1.2 var(--display);margin:0 0 10px;color:var(--rc-ink)}
.roster-comments .discussion-intro{max-width:70ch;margin:0 0 20px;line-height:1.6}
.roster-comments .discussion-list{list-style:none;padding:0;margin:0}
.roster-comments .discussion-comment{padding:18px 0;border-top:1px solid var(--rc-rule);min-width:0}
.roster-comments .discussion-comment header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 20px}
.roster-comments .discussion-comment header strong{font-size:16px;overflow-wrap:anywhere}
.roster-comments :is(.discussion-comment time,.discussion-meta){font-size:14px;line-height:1.55}
.roster-comments .discussion-body{max-width:72ch;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0;font-size:16px;line-height:1.55}
.roster-comments .discussion-comment-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px}
.roster-comments .discussion-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 4px;background:transparent;border:0;text-decoration:underline;text-underline-offset:3px;font-size:14px;font-weight:600}
.roster-comments .discussion-action:disabled{opacity:1;text-decoration:none}
.roster-comments .discussion-removed .discussion-body{font-style:italic}
.roster-comments :is(.discussion-intro,.discussion-meta,.discussion-post-reason,.discussion-empty,.discussion-removed .discussion-body,.discussion-comment time){color:var(--rc-muted)}
.roster-comments :is(.discussion-comment,.discussion-form){border-color:var(--rc-rule)}
.roster-comments .discussion-comment header strong{color:var(--rc-ink)}
.roster-comments .discussion-form{max-width:72ch;padding-top:18px;margin-top:8px;border-top:1px solid var(--rc-rule)}
.roster-comments .discussion-form .form-field{margin:0}
.roster-comments .discussion-form label{display:block;font-weight:650;color:var(--rc-ink);margin-bottom:8px}
.roster-comments[data-roster-sport] textarea{display:block;width:100%;min-height:100px;padding:12px;resize:vertical;border:1px solid var(--rc-rule);border-radius:4px;background:var(--rc-paper);color:var(--rc-ink);caret-color:var(--rc-ink);box-sizing:border-box;font:400 16px/1.55 var(--body)}
.roster-comments textarea::placeholder{color:var(--rc-muted);opacity:1}
.roster-comments textarea[readonly]{cursor:default}
.roster-comment-composer-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px 20px;flex-wrap:wrap}
.roster-comments .roster-comment-composer-meta .discussion-meta{margin:8px 0 14px}
.roster-comments [data-roster-comment-count]{white-space:nowrap;font-variant-numeric:tabular-nums}
.roster-comments[data-roster-sport] .roster-comment-post{background:var(--rc-accent);color:var(--rc-ink);border-color:var(--rc-accent)}
.roster-comments[data-roster-sport] .roster-comment-post:hover:not(:disabled){background:var(--rc-hover);border-color:var(--rc-hover)}
.roster-comments[data-roster-sport] :is(.roster-comment-retry,.roster-comment-older){background:var(--rc-paper);color:var(--rc-ink);border-color:var(--rc-rule)}
.roster-comments[data-roster-sport] :is(.roster-comment-retry,.roster-comment-older):hover:not(:disabled){background:var(--rc-accent);border-color:var(--rc-accent)}
.roster-comments[data-roster-sport] .discussion-action{color:var(--rc-muted)}
.roster-comments[data-roster-sport] .discussion-action:hover:not(:disabled){color:var(--rc-ink);background:var(--rc-accent)}
.roster-comments[data-roster-sport] :is(button,a,textarea,.discussion-comment):focus-visible{outline:3px solid var(--rc-ink);outline-offset:3px}
.roster-comments :is(.roster-comment-status,.roster-comment-recovery){font-size:14px;line-height:1.6;color:var(--rc-ink);max-width:72ch;margin:12px 0;min-height:23px;overflow-wrap:anywhere}
.roster-comments a{color:var(--rc-ink);text-decoration:underline;text-underline-offset:4px;min-height:44px;display:inline-flex;align-items:center}
.roster-comments [hidden]{display:none}
.roster-comments .discussion-order{margin:24px 0 10px}
.roster-comments :is(.discussion-empty,.discussion-post-reason){max-width:70ch;line-height:1.6}
.roster-comment-list-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.roster-comments button:disabled{cursor:default}
.roster-comments [aria-busy="true"] button:disabled{cursor:wait}
@media(max-width:600px){.roster-comments{margin-top:20px;padding:22px 18px}.roster-comments h2{font-size:28px}.roster-comments .discussion-form{padding-top:16px}.roster-comments .discussion-comment header{display:grid;gap:3px}.roster-comments .discussion-comment{padding:16px 0}}

/* Emoji insertion and reactions retain each roster's existing sport palette. */
.roster-comment-emoji-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-top:8px}
.roster-comments .roster-comment-emoji{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:6px;border:1px solid var(--rc-rule);border-radius:4px;background:var(--rc-paper);color:var(--rc-ink);font:22px/1 var(--body);cursor:pointer}
.roster-comments .roster-comment-emoji:hover:not(:disabled){background:var(--rc-accent);border-color:var(--rc-ink)}
.roster-comments .roster-comment-emoji:active:not(:disabled){background:var(--rc-hover)}
.roster-comments .roster-comment-emoji:disabled{opacity:.55}
.roster-comments .roster-comment-length-error{margin:8px 0 0;color:var(--rc-ink);font-size:14px;line-height:1.5}
.roster-comment-reactions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;width:100%}
.roster-comments .roster-comment-reaction{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:8px 10px;border:1px solid var(--rc-rule);border-radius:4px;background:var(--rc-paper);color:var(--rc-ink);font:650 14px/1.4 var(--body);font-variant-numeric:tabular-nums;cursor:pointer}
.roster-comment-reaction svg{display:block;flex:none;width:18px;height:18px;pointer-events:none}
.roster-comments .roster-comment-reaction[aria-pressed="true"]{background:var(--rc-accent);border-color:var(--rc-ink)}
.roster-comments .roster-comment-reaction:hover:not(:disabled):not([aria-disabled="true"]){background:var(--rc-hover);border-color:var(--rc-ink)}
.roster-comments .roster-comment-reaction:active:not(:disabled):not([aria-disabled="true"]){background:var(--rc-accent)}
.roster-comments .roster-comment-reaction:disabled{opacity:.7}
.roster-comments .roster-comment-reaction[aria-disabled="true"]:not(:disabled){cursor:wait;opacity:.7}
.roster-comments :is(.roster-comment-reaction-reason,.roster-comment-reaction-status){flex:1 0 100%;margin:0;max-width:72ch;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.roster-comments .roster-comment-reaction-status{color:var(--rc-ink)}
.roster-comment-reaction-status:empty{display:none}

.roster-comments .discussion-action[aria-disabled="true"]{cursor:wait;opacity:.7}
