.competitions { margin-top: 1.5rem; min-width: 0; }
.competitions .rating-table-title, .competitions h4 { font-weight: 500; }
.competition-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: .75rem; }
.competition-card { background: var(--surface-alt, var(--surface)); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem; }
.competition-card h4, .competition-detail h4 { margin: 0 0 .6rem; }
.competition-card p { margin: .5rem 0; }
.competition-hint { color: var(--text-dim); font-size: .85rem; line-height: 1.5; }
.competition-button { background: var(--surface); color: var(--accent); border: 1px solid var(--line); border-radius: var(--radius); padding: .6rem .75rem; min-height: 44px; cursor: pointer; margin: .25rem .4rem .25rem 0; font: inherit; }
.competition-button:disabled { opacity: .5; cursor: wait; }
.competition-error { color: var(--danger, var(--accent)); }
.competition-scroll { overflow-x: auto; }
.competition-table { width: 100%; font-variant-numeric: tabular-nums; }
.competition-table td, .competition-table th { text-align: right; padding: .5rem; white-space: nowrap; }
.competition-table td:nth-child(2), .competition-table th:nth-child(2) { text-align: left; }
.competition-table .rt-rank { min-width: 2rem; width: 2rem; }
.competition-table .rt-name { left: 2rem; }
.competition-name { display: block; width: 8rem; overflow: hidden; text-overflow: ellipsis; }
.competition-own td.rt-rank, .competition-own td.rt-name { background: var(--surface-alt, var(--surface)); }
.competition-own { background: var(--surface-alt, var(--surface)); }
.competition-detail { margin-top: 1rem; }
.competition-detail details { border-bottom: 1px solid var(--line); padding: .75rem 0; }
.competition-detail summary { cursor: pointer; min-height: 44px; }
.competition-comparison { margin-top: .75rem; }
