.nhl-competitions .league-grid { margin-top: 18px; }
.nhl-competitions .league-card-top { align-items: flex-start; }
.nhl-competitions .league-card h2 { margin-top: 12px; }
.nhl-competitions .league-card h2 a { color: inherit; text-decoration: none; }
.nhl-competitions .league-card h2 a:hover { text-decoration: underline; text-underline-offset: 5px; }
.nhl-competitions .competition-search { display: grid; gap: 14px; margin-bottom: 16px; }
.nhl-competitions .competition-search label { color: var(--hk-ink); }
.nhl-competitions .competition-search .form-grid { grid-template-columns: minmax(180px, 2fr) repeat(2, minmax(150px, 1fr)); gap: 16px; }
.nhl-competitions .competition-search .form-check { display: flex; align-items: center; gap: 9px; min-height: 44px; margin: 0; }
.nhl-competitions .competition-search input[type="checkbox"] { width: 20px; min-height: 20px; height: 20px; flex: none; }
.nhl-competitions .heading-actions { flex-wrap: wrap; gap: 10px; }
.nhl-competitions .form-check { align-items: center; min-height: 44px; }
.nhl-competitions .host-setup-form { margin-bottom: 0; }
.nhl-competitions .setup-section { min-width: 0; }
.nhl-competitions .setup-explanation, .nhl-competitions .setup-section-note { max-width: 76ch; }
.nhl-competitions .league-main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; min-width: 0; }
.nhl-competitions .league-main > * { min-width: 0; }
.nhl-competitions .table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.nhl-competitions .league-side { gap: 18px; position: sticky; top: 18px; }
.nhl-competitions .league-side h2, .nhl-competitions .panel-pad > h2 { font: 400 30px/1.2 var(--display); text-transform: uppercase; margin: 0 0 12px; }
.nhl-competitions .league-side ul { padding-left: 20px; margin-bottom: 18px; }
.nhl-competitions .league-side li { overflow-wrap: anywhere; margin-bottom: 9px; }
.nhl-competitions .round-panel .button { margin: 8px 8px 0 0; }
.nhl-competitions .round-entry-list { padding: 0; margin: 14px 0; }
.nhl-competitions .entry-pill { font-size: 14px; }
.nhl-competitions .panel-title { flex-wrap: wrap; gap: 10px; }
.nhl-competitions .champion-banner { display: block; min-height: 0; text-align: left; border: 1px solid var(--hk-rule-paper); border-top: 4px solid var(--hk-rule); }
.nhl-competitions .champion-banner h2 { width: 100%; max-width: none; margin: 0; font-weight: 400; overflow-wrap: anywhere; }
.nhl-competitions .champion-banner .badge { background: var(--hk-paper); color: var(--hk-ink); }
.nhl-competitions .standings-table { min-width: 560px; }
.nhl-competitions .data-table th[scope="row"] { text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--hk-ink); }
.nhl-competitions .match-card { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 10px 16px; }
.nhl-competitions .match-card > p { grid-column: 1 / -1; margin: 0; color: var(--hk-muted-ink); font-size: 13px; }
.nhl-competitions .match-team { overflow-wrap: anywhere; }
.nhl-competitions .match-team:nth-child(3) { text-align: right; }
.nhl-competitions .match-score { font-size: 28px; letter-spacing: 0; white-space: nowrap; font-variant-numeric: tabular-nums; }
.nhl-competitions .bracket { gap: 18px; }
.nhl-competitions .bracket-round { min-width: 300px; }
.nhl-competitions .bracket-round > h3 { font-size: 18px; color: var(--hk-ink); }
.nhl-competitions .bracket-round .match-card { grid-template-columns: minmax(0, 1fr); border: 1px solid var(--hk-rule-paper); margin-bottom: 12px; }
.nhl-competitions .bracket-round .match-team:nth-child(3) { text-align: left; }
.nhl-competitions .bracket-round .match-score { font-size: 25px; }
.nhl-competitions .round-history-title, .nhl-competitions .competition-rosters > summary { display: list-item; min-height: 48px; padding: 13px 20px; cursor: pointer; font-weight: 700; color: var(--hk-ink); overflow-wrap: anywhere; }
.nhl-competitions .competition-rosters[open] > summary { border-bottom: 1px solid var(--hk-rule-paper); }
/* ballpark.css fills round titles pale blue; hockey round titles use the site's cream header instead. */
.nhl-competitions .round-history-title { background: #f1e9d6; }
.nhl-competitions .competition-rosters { border-top: 1px solid var(--hk-rule-paper); }
.nhl-competitions .competition-rosters .data-table { min-width: 480px; }
.nhl-competitions [data-comp-comments] { max-height: 440px; overflow-y: auto; margin-top: 18px; overscroll-behavior: contain; }
.nhl-competitions .discussion-comment { padding: 14px 0; border-top: 1px solid var(--hk-rule-paper); }
.nhl-competitions .comment-meta { display: flex; flex-wrap: wrap; gap: 5px 10px; font-size: 13px; }
.nhl-competitions .comment-meta time { color: var(--hk-muted-ink); }
.nhl-competitions .comment-body { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 15px; line-height: 1.55; margin: 10px 0; }
.nhl-competitions .discussion-comment .text-button { min-height: 44px; padding: 8px 5px; }
.nhl-competitions textarea { width: 100%; resize: vertical; min-height: 88px; }
.nhl-competitions :is(input, select, textarea, button, .button):focus-visible { outline: 3px solid var(--hk-rule); outline-offset: 3px; }
.nhl-competitions [hidden] { display: none !important; }
@media (max-width: 980px) {
  .nhl-competitions .league-layout { grid-template-columns: minmax(0, 1fr); }
  .nhl-competitions .league-side { position: static; grid-template-columns: minmax(0, 1fr); }
  .nhl-competitions .competition-search .form-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .nhl-competitions .page-heading { gap: 18px; }
  .nhl-competitions .heading-actions { width: 100%; }
  .nhl-competitions .heading-actions .button { flex: 1 1 auto; }
  .nhl-competitions .match-card { padding: 16px; gap: 8px; }
  .nhl-competitions .match-score { font-size: 22px; }
  .nhl-competitions .match-team { font-size: 13px; }
  .nhl-competitions .round-panel .button { max-width: 100%; white-space: normal; }
  .nhl-competitions .bracket-round { min-width: 260px; }
}
