.panel details > summary { min-height:48px; padding:12px 8px; cursor:pointer; }
.panel details > summary:focus-visible { outline:2px solid var(--red,#c71d2b); outline-offset:2px; }
.panel select, .panel textarea { max-width:100%; }
.panel li { overflow-wrap:anywhere; }
.bracket-public { overflow-wrap:anywhere; }
.bracket-result { overflow-wrap:anywhere; }
.bracket-result fieldset { min-width:0; margin:16px 0; }
.bracket-result input:not([type=hidden]):not([type=checkbox]), .bracket-result select, .bracket-result textarea, .bracket-result button { min-height:48px; max-width:100%; box-sizing:border-box; font-size:16px; }
.bracket-result a { display:inline-block; min-height:48px; padding:12px 0; box-sizing:border-box; }
.bracket-result .check { min-height:48px; display:flex; align-items:center; gap:12px; }
.bracket-result :is(a,input,select,textarea,button):focus-visible { outline:3px solid var(--navy,#152238); outline-offset:3px; }
.bracket-rounds { display:grid; gap:16px; }
.bracket-round { min-width:0; }
.bracket-match { border:1px solid var(--border,#ddd); border-left:4px solid var(--red); padding:12px; margin:12px 0; }
.bracket-team { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:start; }
.bracket-score { font-variant-numeric:tabular-nums; }
.bracket-champion { border-left:4px solid var(--red); padding:12px; }
.bracket-public a { display:inline-block; min-height:48px; padding:12px 0; box-sizing:border-box; }
.bracket-public a:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
@media (min-width:1024px) { .bracket-rounds { grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); } }
.bracket-deadline { overflow-wrap:anywhere; }
.bracket-deadline-rounds { display:grid; gap:8px; padding:0; list-style:none; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); }
.bracket-deadline-rounds a { display:flex; gap:12px; justify-content:space-between; border:1px solid var(--border,#ddd); padding:12px; }
.bracket-deadline-rounds a[aria-current=page] { border-left:4px solid var(--red,#c71d2b); font-weight:700; }
.bracket-deadline a { min-height:48px; box-sizing:border-box; }
.bracket-deadline p > a { display:inline-block; padding:12px 0; }
.bracket-deadline label { display:block; margin:16px 0 8px; }
.bracket-deadline input:not([type=hidden]):not([type=checkbox]), .bracket-deadline textarea, .bracket-deadline button { min-height:48px; max-width:100%; box-sizing:border-box; font-size:16px; }
.bracket-deadline .check { min-height:48px; display:flex; align-items:center; gap:12px; }
.bracket-deadline :is(a,input,textarea,button):focus-visible { outline:3px solid var(--navy,#152238); outline-offset:3px; }
.bracket-deadline-notification .check { padding:12px 0; }
.bracket-deadline-notification button { white-space:normal; }
.bracket-deadline-notification fieldset { min-width:0; margin:16px 0; }
.tournament-scroll { max-width:100%; overflow:auto; background:var(--surface,#fff); border:1px solid var(--line,#dce1e7); }
.tournament-scroll:focus-visible { outline:3px solid var(--navy,#111f38); outline-offset:3px; }
.tournament-tree { display:block; max-width:none; color:var(--navy,#111f38); font-family:"Yu Gothic",Meiryo,sans-serif; }
.tournament-edge { stroke:var(--muted,#596474); stroke-width:2; stroke-linejoin:round; }
.tournament-edge.is-decided { stroke:var(--red,#df0025); stroke-width:3; }
.tournament-card { fill:var(--surface,#fff); stroke:var(--navy,#111f38); stroke-width:1; }
.tournament-card-header { fill:var(--navy,#111f38); }
.tournament-match-label { fill:#fff; font-size:12px; font-weight:700; }
.tournament-round-title { fill:var(--navy,#111f38); font-size:18px; font-weight:700; }
.tournament-round-deadline { fill:var(--navy,#111f38); font-size:14px; font-weight:700; }
.tournament-divider { stroke:var(--line,#dce1e7); stroke-width:1; }
.tournament-name { fill:var(--navy,#111f38); font-size:14px; }
.tournament-points { fill:var(--navy,#111f38); font-size:18px; font-weight:700; font-variant-numeric:tabular-nums; }
.tournament-name.is-winner,.tournament-points.is-winner { fill:var(--red,#df0025); font-weight:700; }
.bracket-match-details { margin-top:24px; }
.bracket-match-details > summary { min-height:48px; padding:12px 8px; cursor:pointer; font-weight:700; }
@media print {
  .tournament-scroll { overflow:visible; border:0; }
  .tournament-tree { max-width:100%; height:auto; }
  .tournament-tree * { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .bracket-match-details { display:none; }
}
