.torneos { min-width: 0; }
.torneos h1, .torneos h2, .torneos h3, .torneos p { overflow-wrap: anywhere; }
.torneo-activacion { max-width: 760px; padding: clamp(20px, 4vw, 40px); }
.torneo-activacion h2 { margin: 18px 0 12px; }
.torneo-activacion p { max-width: 65ch; line-height: 1.7; }
.torneo-lista { display: grid; gap: 12px; }
.torneo-enlace { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text); text-decoration: none; }
.torneo-enlace:hover { background: var(--panel-2); }
.torneo-enlace h3 { margin: 0 0 6px; }
.torneo-enlace p { margin: 0; }
.torneo-publicacion { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.torneo-publicacion > div:first-child { flex: 1 1 360px; }
.torneo-publicacion p { max-width: 68ch; }
.torneos .acciones { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.torneos details > summary { min-height: 44px; padding: 12px 0; cursor: pointer; font-weight: 650; }
.torneos details + details { border-top: 1px solid var(--border); margin-top: 8px; }
.torneos details[open] > summary { margin-bottom: 12px; }
.participantes-lista { list-style: none; padding: 0; margin: 16px 0; display: grid; gap: 8px; }
.participantes-lista li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px; background: var(--panel-2); border-radius: var(--radius-sm); overflow-wrap: anywhere; }
.participantes-lista li > span { min-width: 0; }
.torneo-generar { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--border); }
.torneo-liberar { margin-top: 12px; }
.partidos-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); gap: 16px; align-items: start; }
.partido { min-width: 0; }
.partido-numero { margin-top: 0; font-weight: 650; }
.partido-equipo { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--border); }
.partido-equipo > span { min-width: 0; overflow-wrap: anywhere; }
.partido-marcador { font-size: 22px; font-variant-numeric: tabular-nums; flex: 0 0 32px; text-align: center; }
.partido-horario { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.partido .form-grid { grid-template-columns: minmax(0, 1fr); }
.partido .input, .partido .btn { max-width: 100%; min-width: 0; }
.torneo-descripcion { white-space: pre-line; line-height: 1.7; }
.torneo-posiciones .table-scroll { max-width: 100%; }
.torneo-posiciones tbody th { white-space: normal; min-width: 140px; letter-spacing: normal; text-transform: none; color: var(--text); }
.pub-torneos { margin-top: 32px; }
.pub-torneos .torneo-enlace { background: var(--panel); }
@media(max-width:600px) {
    .torneo-enlace { align-items: flex-start; flex-direction: column; }
    .torneo-publicacion > div:first-child { flex-basis: 100%; }
    .torneos .form-grid { grid-template-columns: minmax(0, 1fr); }
    .torneos .encabezado .btn { width: 100%; }
}
